virglrenderer for 3d support

Hi,

AFAIK one must add multiple new options for venus to work, according to the docs:

`virtio-gpu-gl,hostmem=8G,blob=true,venus=true`
(the 8G are just as an example)

but i tried here on a test machine (with an radeon RX560 on the host and i always got `error_out_of_host_memory` when running vulkaninfo on the guest.
Since the docs are not very expansive, I'm not sure if there is something missing (vulkan drivers are installed on host and guest, kernels should be new enough, qemu and mesa as well...)
 
How did you do it? I still get:
Code:
kvm: -device virtio-gpu-gl,hostmem=8G,blob=true,venus=true: old virglrenderer, blob resources unsupported
So i am not even able to start the VM. Can you show me your QEMU version so i know it's not a QEMU problem?
 
Last edited:
Ah that explains it. I'm still on 8 until 9 is final (and venus fixed). Maybe you can also test DRM native context as well? (Should be "-device virtio-vga-gl,blob=true,context_init=true,hostmem=4G")
 
that property (context_init) does not exist here, i'll have to look if there is some compile flag that has to be activated...
 
It is October 5 2025 and Proxmox 9.x is released. Has Proxmox been able to test DRM Native Context successfully and will full, documentable support be made available in a 9.x patch upgrade?

DRM Native Context will be a game changer for Proxmox Workstation.

If Virtio-gpu Venus is relatively straight forward to implement right now is this another option that can be made available for users?
Cheers.
 
Last edited:
I've managed to get Vulkan running in PVE 9:
  • the package virgl-server needs to be additionally installed. See also this Debian bug.
  • /usr/libexec/virgl_render_server needs to be symlinked to /builds/virgl/virglrenderer/install/libexec/virgl_render_server as this is the default path libvirglrenderer.so expects it at (see strings /usr/lib/x86_64-linux-gnu/libvirglrenderer.so.1 | grep -i render_server). The RENDER_SERVER_EXEC_PATH is an environment variable, but I haven't found a way to set them via qm.conf on the quick (which would be soo much less ugly than that symlink).
  • The VMs qm.conf needs to be adapted as follows:
    • args: -device virtio-vga-gl,hostmem=8G,venus=on,blob=on -display egl-headless,gl=on (you might want to use less than 8G here, mine is for LLM experiments with llama.cpp)
    • vga: none
While my host is a bit messy, I think this should be enough to get Vulkan running in the VM (of course you'll need up to date Mesa and lib(e)gl and so on). My VM is Ubuntu 25.04 btw.
 
Last edited: