GenesiGenesiWiki
Virtualization

Virtio + Venus (Vulkan in VMs)

Near-native Vulkan acceleration inside a virtual machine via virtio-gpu and Venus.

Venus is a virtio-gpu path that forwards Vulkan from a guest VM to the host GPU, giving VMs modern 3D acceleration much closer to native than software rendering. It builds on the same virtio-gpu stack used for OpenGL (Virgl), but targets Vulkan.

Venus is cutting-edge and still maturing. It needs a recent host and guest Mesa, a virtio-gpu device with Venus enabled, and matching guest drivers — expect to do some troubleshooting. Have an ordinary QEMU/KVM VM working first.

What you need

  • Host: recent mesa and virglrenderer built with Venus support.
  • Guest: a recent Mesa with the Venus Vulkan driver, running a Genesi/Arch or similarly current guest.
  • A virtio-gpu display device with 3D acceleration and Venus turned on.

Enable 3D acceleration on the VM's virtio video device (virsh edit <vm>):

<video>
  <model type='virtio' heads='1'>
    <acceleration accel3d='yes'/>
  </model>
</video>

Venus itself is toggled through the virtio-gpu device options passed to QEMU (venus=on on the virtio-vga-gl / virtio-gpu-gl device), which libvirt exposes via QEMU command-line passthrough.

Verify inside the guest that a Venus-backed Vulkan device shows up:

vulkaninfo | grep -i venus

Because Venus moves fast, follow a current walkthrough rather than a fixed recipe — the CachyOS Virtio-Venus guide and Mesa's Venus documentation track the latest working setup, and both apply to Genesi.

On this page