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?
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?
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.
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 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