to add some of my high level tests & thoughts:

tried with an NVIDIA card, but could not get it to work. The guest
would start but could not initialize the vulkan driver -> the
virgl-server process on the host crashed. When trying again
afterwards (e.g. with vkcube) the guest also crashed (probably
worth looking into if I have more time?)

Also tried with an AMD RX560, which worked fine.

I tested a vulkan memtest tool[0] (thanks @thomas for finding this)
but the various memory window settings did not make a difference,
it would always result in ~5.4 GB memory transfer speeds.

I also tested the Tomb Raider (2013) benchmark with proton (9.0-5) with
dxvk (directx -> vulkan translation layer) and got

the following results:

virtio-gl hostmem size  avg fps  host rss of the kvm process
512M                    62.6     ~8GiB
8192M                   61.3     ~8GiB

so the hostmem size did not make any difference.

My suggestion would be to reduce the option to a single boolean for now (e.g. vulkan=on/off) and use 512M hostmem size by default.
We can still expose some memory setting later too if we need it.

0: https://github.com/GpuZelenograd/memtest_vulkan

On 11/10/25 12:40 PM, Markus Frank wrote:
This option is represented by an enum in qemu-server and a comboBox in
pve-manager, with values such as 'venus-512' and 'venus-1024'. This is
to allow for the potential addition of another Vulkan implementation
in the future. The number indicates the memory window in MiB for Venus.

As I am not sure what the hostmem and blob properties actually do, I
asked on the qemu-discuss mailing list:
https://mail-archive.com/[email protected]/msg09011.html

QEMU documentation:
www.qemu.org/docs/master/system/devices/virtio/virtio-gpu.html#virtio-gpu-virglrenderer


To get an overview of the performance, see the benchmark below.

supertuxkart (1.5) benchmark (default settings, vulkan, 1024x768):

Host result (Granite Ridge integrated GPU):
* Total frame count: 8488
* Total profiling time (ms): 38139
* Steady FPS: 92
* Mostly stable FPS: 137
* Typical FPS: 194

VM (host, 4 core, 8GiB) with venus (hostmem=8192M) result:
* Total frame count: 3321
* Total profiling time (ms): 38130
* Steady FPS: 58
* Mostly stable FPS: 75
* Typical FPS: 86

This benchmark showed no significant differences in performance between
the various memory window sizes for venus.



qemu-server:

Markus Frank (1):
   virtio-vga-gl: add Vulkan (venus) support

  src/PVE/QemuServer.pm | 20 +++++++++++++++++++-
  1 file changed, 19 insertions(+), 1 deletion(-)


pve-manager:

Markus Frank (1):
   ui: qemu: add Vulkan option in DisplayEdit

  www/manager6/qemu/DisplayEdit.js | 42 +++++++++++++++++++++++++++++++-
  1 file changed, 41 insertions(+), 1 deletion(-)




_______________________________________________
pve-devel mailing list
[email protected]
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to