diff options
author | Rob Clark <robdclark@chromium.org> | 2022-02-01 15:09:23 -0800 |
---|---|---|
committer | Rob Clark <robdclark@chromium.org> | 2022-04-27 15:31:29 -0700 |
commit | b481690448aa434a7422628a699d957884c737ea (patch) | |
tree | bde51e34454c384d4857b7476bbf2093fe167887 /meson_options.txt | |
parent | 7f9e2d8a61d84a15cb428e7f56db2dce739f9e5d (diff) |
drm: Add msm native context implementation
The idea is to add new context type(s) which allows using native Mesa
drivers in a guest userspace, talking their own protocol to a small host
side component which interfaces with the native host drm driver. The
usermode driver in the guest uses the virtio_gpu driver as the "transport
layer" for that protocol, as well as for handling GEM buffer mapping
(and dma-buf/dma-fence sharing between host and guest, etc). If the
protocol is designed properly to avoid synchronous round trips between
host and guest in hot paths, the performance can match native (outside
of VM), which can be a significant improvement over API virtualization.
(Especially on lower powered devices where the overhead of running a gl
driver on top of a gl driver is prohibitive.)
This patch adds a new context type to allow the guest to use mesa/freedreno
on top of virtgpu "passing through" the drm/msm interface to the guest.
The interface does not map 1:1 to host kernel interface in all cases, to
reduce the number of round trips. There could be further possible
improvements with the addition of some new kernel UABI, for example if
we allowed userspace to allocate GPU virtual addresses, then allocation
of new GEM buffers could be made asynchronous.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com>
Reviewed-by: Ryan Neph <ryanneph@google.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/693>
Diffstat (limited to 'meson_options.txt')
-rw-r--r-- | meson_options.txt | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/meson_options.txt b/meson_options.txt index d3a99bb..7ff9776 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -52,6 +52,16 @@ option( description : 'enable the validation layer for venus' ) +# NOTE: expecting some slight fencing changes between host and guest +# once ring_idx is plumbed through crosvm (ie. synchronizing between +# host CPU and guest CPU will be a separate fence timeline) +option( + 'drm-msm-experimental', + type : 'boolean', + value : 'false', + description : 'enable support for msm drm native context' +) + option( 'render-server', type : 'boolean', |