:: [DNG] confused with 3D acceleration…
Top Page
Delete this message
Reply to this message
Author: Adrian Zaugg
To: dng
Subject: [DNG] confused with 3D acceleration under libvirt/KVM/QEMU

For the youngest member of the BSOD-Family of operating systems some of the
prerequisites are "DirectX" and "WDDM2". This can be achieved under KVM/QEMU
with the QXL driver and a Display of type Spice. On huge Displays (38", 4K)
this driver does not perform so well. I am not asking for any pass-through
configuration since the VM screen should be in a window on top of Linux X11
and there is no spare GPU around.

Using the VirtIO Video driver instead, performance is much better, but there
is no WDDM2 support without OpenGL switched on. Trying to switch on OpenGL
yields in different results in Daedalus, Chimaera and on different hardware. I
use virt-manager from libvirt for configuration, so the terms Video and
Display refer to the respective configuration options. The latest guest
additions and VirtIO drivers are installed in the guest btw.

On my Tiger Lake Laptop under Chimaera with Intel XE graphics for example I
can switch on OpenGL under Display and use it together with Video VirtIO and
3D acceleration switched on. It just gets terribly slow. Without OpenGL
switched on, it is fast but there is no "WDDM2" support.

On a AMD Ryzen 5700G under Daedalus there are errors from Apparmor switching
on OpenGL. Adding an Apparmor profile to allow the needed path, these errors
go away, but then the VM process dies during start-up of the vm (before
booting the guest). There is no further error seen in syslog.

If there is no discrete GPU for the VM and 3D and OpenGL is switched on with
VirtIO, does it use libvirglrenderer1 which in turn means that graphics get
rendered on the CPU? Is this the reason why performance is so slow?

What do you do to get good video performance, 3D acceleration and comply with
the requirements for the latest BSOD-Family-OS? Do you connect your Display
through RDP, Spice or VNC?

Thank you for answers.

Best regards, Adrian.