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(a)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