• Home
  • Raw
  • Download

Lines Matching +full:build +full:- +full:in +full:- +full:qemu

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
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``
23 from the host driver. However, it violates the spec in some places currently
24 and also relies on implementation-defined behaviors in others. It is not
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
46 qemu
47 <https://www.collabora.com/news-and-blog/blog/2021/11/26/venus-on-qemu-enabling-new-virtual-vulkan-
50 -----
53 build virglrenderer with Venus support and to start the vtest server,
55 .. code-block:: console
59 $ meson out -Dvenus-experimental=true
60 $ ninja -C out
61 $ ./out/vtest/virgl_test_server --venus
63 In another shell,
65 .. code-block:: console
67 $ export VK_ICD_FILENAMES=<path-to-virtio_icd.x86_64.json>
72 If the host driver of the system is not new enough, it is a good idea to build
77 Virtio-GPU
78 ----------
80 The driver requires ``VIRTGPU_PARAM_CONTEXT_INIT`` from the virtio-gpu kernel
81 driver, which was upstreamed in kernel 5.16.
83 crosvm is written in Rust. To build crosvm, make sure Rust has been installed
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 ------------------------
118 In this setup, the guest userspace uses Xwayland and a special Wayland
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
127 To build minigbm and to enable minigbm support in virglrenderer,
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.
142 In the guest, build and start sommelier, the special Wayland compositor,
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
163 In the future, if virglrenderer's ``virgl_renderer_export_fence`` is
168 -----------------------------------
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
180 (in the future, the plan is to export the device memory as an opaque fd). It
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.