* [Qemu-devel] [PATCH v2 0/3] Introduce 'rendernode' option for egl-headless display type
@ 2018-11-16 10:14 Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 1/3] qapi: Add "rendernode" display option for egl-headless Erik Skultety
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Erik Skultety @ 2018-11-16 10:14 UTC (permalink / raw)
To: qemu-devel; +Cc: Erik Skultety, kraxel
https://bugzilla.redhat.com/show_bug.cgi?id=1648236
Changes since v1:
- adjusted the QAPI version and description commentaries for egl-headless
Erik Skultety (3):
qapi: Add "rendernode" display option for egl-headless
ui: Allow specifying 'rendernode' display option for egl-headless
help: Provide help for egl-headless
qapi/ui.json | 17 ++++++++++++++++-
qemu-options.hx | 6 +++++-
ui/egl-headless.c | 2 +-
3 files changed, 22 insertions(+), 3 deletions(-)
--
2.19.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v2 1/3] qapi: Add "rendernode" display option for egl-headless
2018-11-16 10:14 [Qemu-devel] [PATCH v2 0/3] Introduce 'rendernode' option for egl-headless display type Erik Skultety
@ 2018-11-16 10:14 ` Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 2/3] ui: Allow specifying 'rendernode' " Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 3/3] help: Provide help " Erik Skultety
2 siblings, 0 replies; 4+ messages in thread
From: Erik Skultety @ 2018-11-16 10:14 UTC (permalink / raw)
To: qemu-devel; +Cc: Erik Skultety, Eric Blake, Markus Armbruster, Gerd Hoffmann
Unlike SPICE, egl-headless doesn't offer a way of specifying the DRM
node used for OpenGL, hence QEMU always selecting the first one that is
available. Thus, add the 'rendernode' option for egl-headless to QAPI.
Signed-off-by: Erik Skultety <eskultet@redhat.com>
---
qapi/ui.json | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/qapi/ui.json b/qapi/ui.json
index bf9e157d5a..e0000248d3 100644
--- a/qapi/ui.json
+++ b/qapi/ui.json
@@ -1037,6 +1037,20 @@
'data' : { '*grab-on-hover' : 'bool',
'*zoom-to-fit' : 'bool' } }
+##
+# @DisplayEGLHeadless:
+#
+# EGL headless display options.
+#
+# @rendernode: Which DRM render node should be used. Default is the first
+# available node on the host.
+#
+# Since: 3.1
+#
+##
+{ 'struct' : 'DisplayEGLHeadless',
+ 'data' : { '*rendernode' : 'str' } }
+
##
# @DisplayGLMode:
#
@@ -1086,4 +1100,5 @@
'*window-close' : 'bool',
'*gl' : 'DisplayGLMode' },
'discriminator' : 'type',
- 'data' : { 'gtk' : 'DisplayGTK' } }
+ 'data' : { 'gtk' : 'DisplayGTK',
+ 'egl-headless' : 'DisplayEGLHeadless'} }
--
2.19.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v2 2/3] ui: Allow specifying 'rendernode' display option for egl-headless
2018-11-16 10:14 [Qemu-devel] [PATCH v2 0/3] Introduce 'rendernode' option for egl-headless display type Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 1/3] qapi: Add "rendernode" display option for egl-headless Erik Skultety
@ 2018-11-16 10:14 ` Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 3/3] help: Provide help " Erik Skultety
2 siblings, 0 replies; 4+ messages in thread
From: Erik Skultety @ 2018-11-16 10:14 UTC (permalink / raw)
To: qemu-devel; +Cc: Erik Skultety, Gerd Hoffmann
As libvirt can't predict which rendernode QEMU would pick, it
won't adjust the permissions on the device, hence QEMU getting
"Permission denied" when opening the DRI device. Therefore, enable
'rendernode' option for egl-headless display type.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1648236
Signed-off-by: Erik Skultety <eskultet@redhat.com>
---
ui/egl-headless.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ui/egl-headless.c b/ui/egl-headless.c
index 42a41310b0..4cf3bbc0e4 100644
--- a/ui/egl-headless.c
+++ b/ui/egl-headless.c
@@ -176,7 +176,7 @@ static void egl_headless_init(DisplayState *ds, DisplayOptions *opts)
egl_dpy *edpy;
int idx;
- if (egl_rendernode_init(NULL, mode) < 0) {
+ if (egl_rendernode_init(opts->u.egl_headless.rendernode, mode) < 0) {
error_report("egl: render node init failed");
exit(1);
}
--
2.19.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v2 3/3] help: Provide help for egl-headless
2018-11-16 10:14 [Qemu-devel] [PATCH v2 0/3] Introduce 'rendernode' option for egl-headless display type Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 1/3] qapi: Add "rendernode" display option for egl-headless Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 2/3] ui: Allow specifying 'rendernode' " Erik Skultety
@ 2018-11-16 10:14 ` Erik Skultety
2 siblings, 0 replies; 4+ messages in thread
From: Erik Skultety @ 2018-11-16 10:14 UTC (permalink / raw)
To: qemu-devel; +Cc: Erik Skultety
EGL headless has been missing from QEMU's help or man page, we should
mention that such a thing exists, especially since projects like libvirt
might rely on that. This patch also adds the newly introduced option for
egl-headless 'rendernode'.
Signed-off-by: Erik Skultety <eskultet@redhat.com>
---
qemu-options.hx | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/qemu-options.hx b/qemu-options.hx
index ee379b32e3..f7df472f43 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -1216,7 +1216,8 @@ DEF("display", HAS_ARG, QEMU_OPTION_display,
"-display gtk[,grab_on_hover=on|off][,gl=on|off]|\n"
"-display vnc=<display>[,<optargs>]\n"
"-display curses\n"
- "-display none"
+ "-display none\n"
+ "-display egl-headless[,rendernode=<file>]"
" select display type\n"
"The default display is equivalent to\n"
#if defined(CONFIG_GTK)
@@ -1258,6 +1259,9 @@ menus and other UI elements to configure and control the VM during
runtime.
@item vnc
Start a VNC server on display <arg>
+@item egl-headless
+Offload all OpenGL operations to a local DRI device. For any graphical display,
+this display needs to be paired with either VNC or SPICE displays.
@end table
ETEXI
--
2.19.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-11-16 10:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-16 10:14 [Qemu-devel] [PATCH v2 0/3] Introduce 'rendernode' option for egl-headless display type Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 1/3] qapi: Add "rendernode" display option for egl-headless Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 2/3] ui: Allow specifying 'rendernode' " Erik Skultety
2018-11-16 10:14 ` [Qemu-devel] [PATCH v2 3/3] help: Provide help " Erik Skultety
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).