Lines Matching +full:virgl +full:- +full:on +full:- +full:gl
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/olv/venus-protocol>`__. The renderer is
8 <https://gitlab.freedesktop.org/virgl/virglrenderer>`__.
14 ------------
18 - Vulkan 1.1
19 - ``VK_EXT_external_memory_dma_buf``
20 - ``VK_EXT_image_drm_format_modifier``
21 - ``VK_EXT_queue_family_foreign``
24 and also relies on implementation-defined behaviors in others. It is not
25 expected to work on all drivers meeting the requirements. It has only been
28 - ANV 21.1 or later
29 - RADV 21.1 or later (the host kernel must have
31 <https://github.com/google/security-research/security/advisories/GHSA-7wq5-phmq-m584>`__)
32 - TURNIP 22.0 or later
33 - Mali r32p0 or later
37 - ``VIRTGPU_PARAM_RESOURCE_BLOB``
38 - ``VIRTGPU_PARAM_HOST_VISIBLE``
39 - ``VIRTGPU_PARAM_CROSS_DEVICE``
40 - ``VIRTGPU_PARAM_CONTEXT_INIT``
42 from the virtio-gpu kernel driver, unless vtest is used. That usually means
47 <https://www.collabora.com/news-and-blog/blog/2021/11/26/venus-on-qemu-enabling-new-virtual-vulkan-…
50 -----
55 .. code-block:: console
57 $ git clone https://gitlab.freedesktop.org/virgl/virglrenderer.git
59 $ meson out -Dvenus-experimental=true
60 $ ninja -C out
61 $ ./out/vtest/virgl_test_server --venus
65 .. code-block:: console
67 $ export VK_ICD_FILENAMES=<path-to-virtio_icd.x86_64.json>
77 Virtio-GPU
78 ----------
80 The driver requires ``VIRTGPU_PARAM_CONTEXT_INIT`` from the virtio-gpu kernel
86 .. code-block:: console
88 $ git clone --recurse-submodules \
91 $ RUSTFLAGS="-L<path-to-virglrenderer>/out/src" cargo build \
92 --features "x wl-dmabuf virgl_renderer virgl_renderer_next default-no-sandbox"
94 Note that crosvm must be built with ``default-no-sandbox`` or started with
95 ``--disable-sandbox`` in this setup.
99 .. code-block:: console
102 --gpu vulkan=true \
103 --display-window-keyboard \
104 --display-window-mouse \
105 --host_ip 192.168.0.1 \
106 --netmask 255.255.255.0 \
107 --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:: console
133 $ CFLAGS=-DDRV_<I915-or-your-driver> OUT=out DESTDIR=out/install make install
135 $ meson configure out -Dminigbm_allocation=true
136 $ ninja -C out
139 ``--display-window-keyboard --display-window-mouse`` by
140 ``--wayland-sock=<path-to-wayland-socket>`` when starting crosvm.
144 .. code-block:: console
148 $ meson out -Dxwayland_path=/usr/bin/Xwayland -Dxwayland_gl_driver_path=/usr/lib/dri
149 $ ninja -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
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.