Corruption using spice with gl=on and virtio with accel3d=on
It seems that, for a while now, using virgl with spice is not working. See here for a deeper investigation.
What happens is that when running spice with gl=on, the image gets corrupted on the VM. I've tried several combinations and it simply doesn't work. One can use a VM with qemu directly using -display gtk or -display sdl without issues, but even when using plain qemu, adding spice with gl=on doesn't work.
I have found one workaround, which is to use -display egl-headless,gl=on and then you can use that with spice. But there seems to have a performance impact.
Also, I have tested this on both mainline and lts kernels, several versions, ranging from 5.7 to 5.8 as well.