On Tue, Jun 05, 2018 at 11:52:03AM +0200, Gerd Hoffmann wrote:
Hi,
> > TL;DR:
> > - we have a new attribute value for vfio-pci mediated devices called
'display'
> > -> devices can now format this new 'display=on/off' property to
the cmdline
Good.
> > - if user enables the vfio display (display=on) but doesn't enable OpenGL
for
> > Spice, we automatically assume the usage of '-display
egl-headless'
Hmm, I think it would be better to have egl-headless explicitly
configured in the domain xml instead of doing it automagically depending
on configuration.
I was thinking about that earlier, then we had a private conversation where I
asked why there's no documentation on egl-headless in QEMU to which you replied
that the future of egl-headless being uncertain, especially once there's remote
opengl renderer support (as opposed to local nowadays). So I took a bit of a
safe path here and only made the changes to the command line, thus leaving us
with a way of easily ditching that if QEMU decides to deprecate egl-headless
completely. So, if QEMU can guarantee supporting egl-headless (of course you
can discourage usage of it...) then we surely can expose it through the XML,
but I'd really wouldn't want to end up with an XML setting which we won't be
able to satisfy at some point in the future. More importantly though,
egl-headless was introduced in 2.10 IIRC, but I don't see any way for libvirt
to use any kind of introspection here, there's no capability for egl-headless,
I see it defined as a value for DisplayType in the qapi scheme (ui.json), but
I don't see any query command. The way I handled it here is easy, I'm querying
vfio display support which was introduced in 2.12 which is newer, but I'm not
sure about the virgl + vnc case below, because that one doesn't need vfio
display=on/off support.
First, I'd prefer to allow non-opengl configuration for vfio displays.
nvidia has its own non-standard ways of doing things, which causes
problems now and then, so I'd like to have an easy way out in case
using egl-headless on nvidia fails to work properly.
It's a bit ugly that we have to depend on qemu throwing errors in case
the vfio display uses dma-bufs (and therefore requires opengl) then
because libvirt can't easily probe the vfio display type.
Second, you can use egl-headless for other use cases too, for example to
use virgl with vnc.
Yep, that makes sense for us to support.
Erik