Lines Matching +full:vulkan +full:- +full:drivers
1 Virtio-GPU Venus
4 Venus is a Virtio-GPU protocol for Vulkan command serialization. The protocol
5 definition and codegen are hosted at `venus-protocol
6 <https://gitlab.freedesktop.org/virgl/venus-protocol>`__. The renderer is
11 ------------
15 - Vulkan 1.1
16 - :ext:`VK_EXT_external_memory_dma_buf`
17 - :ext:`VK_EXT_image_drm_format_modifier`
18 - :ext:`VK_EXT_queue_family_foreign`
21 and also relies on implementation-defined behaviors in others. It is not
22 expected to work on all drivers meeting the requirements. It has only been
25 - ANV 21.1 or later
26 - RADV 21.1 or later (the host kernel must have
28 <https://github.com/google/security-research/security/advisories/GHSA-7wq5-phmq-m584>`__)
29 - TURNIP 22.0 or later
30 - Mali r32p0 or later
34 - ``VIRTGPU_PARAM_3D_FEATURES``
35 - ``VIRTGPU_PARAM_CAPSET_QUERY_FIX``
36 - ``VIRTGPU_PARAM_RESOURCE_BLOB``
37 - ``VIRTGPU_PARAM_HOST_VISIBLE``
38 - ``VIRTGPU_PARAM_CROSS_DEVICE``
39 - ``VIRTGPU_PARAM_CONTEXT_INIT``
41 from the virtio-gpu kernel driver, unless vtest is used. That usually means
46 <https://www.collabora.com/news-and-blog/blog/2021/11/26/venus-on-qemu-enabling-new-virtual-vulkan-…
49 -----
54 .. code-block:: sh
58 $ meson out -Dvenus=true
59 $ meson compile -C out
60 $ meson devenv -C out
61 $ ./vtest/virgl_test_server --venus
66 .. code-block:: sh
68 $ export VK_DRIVER_FILES=<path-to-virtio_icd.x86_64.json>
78 Virtio-GPU
79 ----------
81 The driver requires ``VIRTGPU_PARAM_CONTEXT_INIT`` from the virtio-gpu kernel
87 .. code-block:: sh
89 $ git clone --recurse-submodules \
92 $ RUSTFLAGS="-L<path-to-virglrenderer>/out/src" cargo build \
93 --features "x wl-dmabuf virgl_renderer virgl_renderer_next default-no-sandbox"
95 Note that crosvm must be built with ``default-no-sandbox`` or started with
96 ``--disable-sandbox`` in this setup.
100 .. code-block:: sh
103 --gpu vulkan=true \
104 --gpu-render-server path=<path-to-virglrenderer>/out/server/virgl_render_server \
105 --display-window-keyboard \
106 --display-window-mouse \
107 --net "host-ip 192.168.0.1,netmask=255.255.255.0,mac=12:34:56:78:9a:bc" \
108 --rwdisk disk.img \
109 -p root=/dev/vda1 \
110 <path-to-bzImage>
115 Virtio-GPU and Virtio-WL
116 ------------------------
120 compositor, using Virtio-WL as the transport. This setup is more tedious, but
123 For now, the guest kernel must be built from the ``chromeos-5.10`` branch of
129 .. code-block:: sh
133 $ CFLAGS=-DDRV_<I915-or-your-driver> OUT=out DESTDIR=out/install make install
135 $ meson configure out -Dminigbm_allocation=true
136 $ meson compile -C out
139 ``--display-window-keyboard --display-window-mouse`` by
140 ``--wayland-sock=<path-to-wayland-socket>`` when starting crosvm.
144 .. code-block:: sh
148 $ meson out -Dxwayland_path=/usr/bin/Xwayland -Dxwayland_gl_driver_path=/usr/lib/dri
149 $ meson compile -C out
151 $ ./out/sommelier -X --glamor
152 --xwayland-gl-driver-path=<path-to-locally-built-gl-driver> \
156 ---------------------
158 When virglrenderer is built with ``-Dminigbm_allocation=true``, the Venus
160 driver supports the formats, especially multi-planar ones, and the DRM format
168 -----------------------------------
172 on the current behaviors of the host drivers. It should be possible to remove
174 host drivers by imposing platform-specific requirements. But the long-term
175 plan is to create a new Vulkan extension for the host drivers to address this
179 ``VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT`` can be exported as a mmapable dma-buf
184 The dma-buf is mapped (in the future, the plan is to import the opaque fd and
187 the guest kernel work together to set up a write-back or write-combined guest
188 mapping (see ``virtio_gpu_vram_mmap`` of the virtio-gpu kernel driver). CPU
195 external device memory to a non-external resource.