I enabled OpenGL acceleration under VirtIO and video playback is smooth, but now other 2d things have suddenly become very slow, such as switching between windows and closing large windows. Is this a known problem? Or do I need a faster GPU or CPU?

#libvirt #virtio #virgl #virglrenderer

Decided to switch back to QXL+Spice, but with Spice Listen Type = None, and with CPU pinning, and directly sending audio to pipewire. Seems to have fixed the slow 2d graphics, while maintaining smooth video playback, and eliminated any random intermittent freezes that would crash the viewer.

#libvirt #virtio #qxl

The performance difference between Spice+VirtIO+OpenGL vs Spice+QXL is night and day. VirtIO+OpenGL was only able to achieve 30-50 FPS with glxgears, while QXL achieves ~500 FPS. Also, the boot splash graphics were higher quality under QXL than VirtIO. I also ran into weird tearing/redrawing issues testing LabWC under VirtIO.

If there's some kind of secret to configuring VirtIO+OpenGL, please share your libvirt config. Otherwise, I'm calling it: QXL > VirtIO+OpenGL.

@postmodern For which guest OS? I would expect higher performance with QXL for Windows and VirGL for Linux guests.
@hooly Linux (Ubuntu and Fedora).

@postmodern hello! Can you please explain what "directly sending audio to pipewire" entails, I'm interesting in trying that tweak out  

As for your results, I've noticed exactly the same on a system that uses Vega 8 integrated graphics, VirGL seems to respond and work way better on beefier rigs, but only improves performance on my machine in small cases like video playback and scrolling, but not window dragging and animations etc., not to mention more glitches start showing up like stuck cursors or random lockups, which doesn't justify the setting anyway.

@machetebadger audio is written directly to the user's pipewire socket by the qemu process, instead of being sent over Spice/VNC and then to the pipewire socket.

https://libvirt.org/formatdomain.html#pipewire-audio-backend

libvirt: Domain XML format

libvirt, virtualization, virtualization API