Virgl is an alternative to PCI passthrough. To summarize it's a virtualized graphics card that passes the OpenGL commands to one of the host's graphics card to render into the VM's framebuffer.
Advantages: * It does not require the same level of hardware support as PCI-passthrough. As long as QEmu works you can have Virgl support. * You can also have multiple VMs all using the host's graphics card at the same time while still getting hardware accelerated OpenGL support in the VMs.
Drawbacks: * There's more overhead than for PCI-passthrough but that would not be a significant issue for WineTest. * It introduces a middle layer and thus the potential for new and interesting bugs. * Vulkan is not supported (there's work on basing it on Vulkan but that looks like many months away).
Anyway, here's what I learned when I investigated whether Virgl could be useful for WineTest.
* First Virgl currently does not support remote access: the client (e.g. virt-manager) must run on the same machine as the VM. That's in the process of being fixed. But in the meantime this issue can be worked around by using the KVM.
* Currently Virgl does not really support Windows guests. It looks like there is work on this but I think it's going to be some time before it is usable. https://lwn.net/Articles/767970/
* It's also impossible to take snapshots of live VMs. It's not entirely clear whether this is a bug or made impossible because of the host-side state. In any case it means that for now Virgl is no better than PCI-passthrough in this respect and will require the same TestBot changes.
* Debian 9 (stable) does not have the needed libvirglrenderer0 package so Virgl support is missing from QEmu. Installing Debian Testing's QEmu packages has wide-ranging cascading impacts so for now Virgl cannot be tested on the TestBot machines :-( Between this and Mesa maybe the TestBot machines should be upgraded to Debian Testing.
* I did test Virgl on my box. WineTest ran to completion but then failed to upload the report dues to some Wine-level thread deadlock! That's a bit suspicious. I manually completed the upload and the results can be seen in the '-virgl' results. They're not terrible but it's not clear that Virgl on Intel gives better results that plain QXL.
https://test.winehq.org/data/f9301c2b66450a1cdd986e9052fcaa76535ba8b7/linux_...