[libvirt] [PATCH v1 07/11] conf: Allow usage of the <gl> element with VNC graphics

Erik Skultety eskultet at redhat.com
Fri Jun 29 12:39:20 UTC 2018


On Thu, Jun 28, 2018 at 05:18:46PM -0400, John Ferlan wrote:
>
>
> On 06/27/2018 09:34 AM, Erik Skultety wrote:
> > VNC doesn't support OpenGL natively, but can run with non-native
> > egl-headless support, so enable that.
> >
> > Signed-off-by: Erik Skultety <eskultet at redhat.com>
> > ---
> >  docs/formatdomain.html.in                          |  6 ++++
> >  docs/schemas/domaincommon.rng                      |  7 ++++
> >  src/conf/domain_conf.c                             |  8 +++++
> >  src/qemu/qemu_command.c                            |  7 ++++
> >  tests/qemuxml2argvdata/graphics-vnc-gl-invalid.xml | 37 ++++++++++++++++++++++
> >  tests/qemuxml2argvdata/graphics-vnc-gl.args        | 28 ++++++++++++++++
> >  tests/qemuxml2argvdata/graphics-vnc-gl.xml         | 37 ++++++++++++++++++++++
> >  tests/qemuxml2argvtest.c                           |  1 +
> >  8 files changed, 131 insertions(+)
> >  create mode 100644 tests/qemuxml2argvdata/graphics-vnc-gl-invalid.xml
> >  create mode 100644 tests/qemuxml2argvdata/graphics-vnc-gl.args
> >  create mode 100644 tests/qemuxml2argvdata/graphics-vnc-gl.xml
> >
>
> hmmm...  I recall some discussion about egl-headless in the review of
> the RFC:
>
> https://www.redhat.com/archives/libvir-list/2018-June/msg00461.html
>
> So, what's the point? Well I was going to ask why no capability for
> egl-headless, but the above link (and a couple followups) discusses the
> issue.

So the point behind egl-headless is that you'll get accelerated output, even
for VNC which especially in this case is an advantage, since you can use
rendernodes to do the rendering instead of doing it in software. SPICE can
benefit from this when used remotely, because native OpenGL support works only
locally at the moment. The output is going to be rendered into a dma-buf which
apps like VNC can get access to and transfer it to your screen.

>
> Anyway, I think either a commit log message or a comment in the code
> when egl-headless is added may be appropriate.  Another option is
> following what commit 3278a7bb does and adding the 2.10 check for the
> capability that is added.

Hmm, thanks for the pointer, we could increase the safety a bit by doing this,
the thing with egl-headless is that the enums that qemu defines are always
available, even when no SPICE/VNC/whatever display support is compiled into it,
but that should be fine with libvirt as there are capabilities for those and we
check for them at appropriate places already.

Erik




More information about the libvir-list mailing list