A brief experiment comparing graphics on native qemu-kvm vs libvirt. I tried to make them as close to similar in operation as possible. Here's the relevant flags:

* qemu-kvm -device virtio-gpu -vga none -display "sdl,gl=on"
* virt-install --graphics spice,gl.enable=yes,listen=none

Result:
- qemu's sdl display is pretty fast, supports resizing/scaling in a way that the guest vm will detect.
- libvirt and virt-install's method requires a separate viewer tool, virt-viewer, which is ... *extremely* laggy and much lower-than-acceptable framerate, even local-only enabled by 'listen=none'

I dunno. I don't enjoy qemu's endless number of flags, but I'm not enjoying libvirt either as it doesn't seem to simplify anything and makes performance worse.

(If you know a better graphics configuration for libvirt/virt-install, please let me know)

@whack The reasonably fast setup I use is done in virt-manager with spice, GL enabled, then video 'virtio', 3d acceleration enabled. In the XML for <graphics>, there is a 'rendernode=' pointing to a /dev/dri (host) entry. This doesn't work remotely, but on the local machine it appears decently fast although not native. (I just called up a dense Grafana dashboard in guest Firefox and it was fine in virt-viewer.)
@whack I prefer to use virt-viewer for eccentric reasons, because it doesn't resize the guest display most of the time when I enlarge the VV window, which matters for me on my HiDPI display. I think I may have set a preference for that in both VV and virt-manager.
@cks ill poke at the settings a bit longer… but so far I’m finding libvirt to just be the same abstraction layer as qemu but with more typing and some items having different names, and then still having to research how to make a qemu feature work in libvirt. It’s like double the documentation reading 😅

@whack I started from VMWare Workstation instead of raw qemu, so virt-manager was a natural migration and then I beat on things until my VMs displayed fast enough for testing purposes.

(Mostly I don't even use VM video, since they're emulating our servers and we ssh in to those and etc etc.)