TestBot and graphics tests
Francois Gouget
fgouget at codeweavers.com
Tue Apr 23 06:55:59 CDT 2019
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_fgtb-debian9-virgl-win32/version.html
--
Francois Gouget <fgouget at codeweavers.com>
More information about the wine-devel
mailing list