summaryrefslogtreecommitdiff
path: root/meson_options.txt
diff options
context:
space:
mode:
authorRob Clark <robdclark@chromium.org>2022-02-01 15:09:23 -0800
committerRob Clark <robdclark@chromium.org>2022-04-27 15:31:29 -0700
commitb481690448aa434a7422628a699d957884c737ea (patch)
treebde51e34454c384d4857b7476bbf2093fe167887 /meson_options.txt
parent7f9e2d8a61d84a15cb428e7f56db2dce739f9e5d (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.txt10
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',