From nobody Thu Nov 6 16:21:11 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1542375172947403.84560529019916; Fri, 16 Nov 2018 05:32:52 -0800 (PST) Received: from localhost ([::1]:44885 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNeEt-0003G1-VI for importer@patchew.org; Fri, 16 Nov 2018 08:32:51 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNeBo-0001eM-QE for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNeBn-0002gS-26 for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:40 -0500 Received: from mx1.redhat.com ([209.132.183.28]:51180) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gNeBm-0002fa-TE for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:39 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 41CAC308AA13 for ; Fri, 16 Nov 2018 13:29:38 +0000 (UTC) Received: from sirius.home.kraxel.org (unknown [10.36.118.1]) by smtp.corp.redhat.com (Postfix) with ESMTP id E63B619C7B; Fri, 16 Nov 2018 13:29:31 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 161C5143B2C; Fri, 16 Nov 2018 14:29:31 +0100 (CET) From: Gerd Hoffmann To: qemu-devel@nongnu.org Date: Fri, 16 Nov 2018 14:29:29 +0100 Message-Id: <20181116132931.8737-2-kraxel@redhat.com> In-Reply-To: <20181116132931.8737-1-kraxel@redhat.com> References: <20181116132931.8737-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.41]); Fri, 16 Nov 2018 13:29:38 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 1/3] qapi: Add "rendernode" display option for egl-headless X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Erik Skultety , Gerd Hoffmann , Markus Armbruster Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Erik Skultety 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 Message-id: 7658e15eca72d520e7a5fb1c2e724702d83d4f7f.1542362949.git.eskulte= t@redhat.com Signed-off-by: Gerd Hoffmann --- 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' } } =20 +## +# @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'} } --=20 2.9.3 From nobody Thu Nov 6 16:21:11 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1542375254004204.3693066397791; Fri, 16 Nov 2018 05:34:14 -0800 (PST) Received: from localhost ([::1]:44889 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNeGC-0004Nk-Ti for importer@patchew.org; Fri, 16 Nov 2018 08:34:12 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43898) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNeBo-0001eL-Q8 for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNeBk-0002el-QI for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:40 -0500 Received: from mx1.redhat.com ([209.132.183.28]:49570) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gNeBj-0002dz-4I for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:35 -0500 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3A343307EA9D for ; Fri, 16 Nov 2018 13:29:34 +0000 (UTC) Received: from sirius.home.kraxel.org (unknown [10.36.118.1]) by smtp.corp.redhat.com (Postfix) with ESMTP id DFF155DAA0; Fri, 16 Nov 2018 13:29:31 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 1DB85155512; Fri, 16 Nov 2018 14:29:31 +0100 (CET) From: Gerd Hoffmann To: qemu-devel@nongnu.org Date: Fri, 16 Nov 2018 14:29:30 +0100 Message-Id: <20181116132931.8737-3-kraxel@redhat.com> In-Reply-To: <20181116132931.8737-1-kraxel@redhat.com> References: <20181116132931.8737-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.44]); Fri, 16 Nov 2018 13:29:34 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 2/3] ui: Allow specifying 'rendernode' display option for egl-headless X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Erik Skultety , Gerd Hoffmann , Markus Armbruster Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Erik Skultety 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=3D1648236 Signed-off-by: Erik Skultety Message-id: 27f4617f19aa1072114f10f1aa9dd199735ef982.1542362949.git.eskulte= t@redhat.com Signed-off-by: Gerd Hoffmann --- 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, Display= Options *opts) egl_dpy *edpy; int idx; =20 - 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); } --=20 2.9.3 From nobody Thu Nov 6 16:21:11 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1542375080337844.5478612030436; Fri, 16 Nov 2018 05:31:20 -0800 (PST) Received: from localhost ([::1]:44878 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNeDC-0002KU-7A for importer@patchew.org; Fri, 16 Nov 2018 08:31:06 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43897) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gNeBo-0001eK-Q9 for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gNeBm-0002gM-W9 for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:40 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44180) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gNeBm-0002fY-Qx for qemu-devel@nongnu.org; Fri, 16 Nov 2018 08:29:38 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 351AB308FC5A for ; Fri, 16 Nov 2018 13:29:38 +0000 (UTC) Received: from sirius.home.kraxel.org (unknown [10.36.118.1]) by smtp.corp.redhat.com (Postfix) with ESMTP id E650A19C7C; Fri, 16 Nov 2018 13:29:31 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id 25372155513; Fri, 16 Nov 2018 14:29:31 +0100 (CET) From: Gerd Hoffmann To: qemu-devel@nongnu.org Date: Fri, 16 Nov 2018 14:29:31 +0100 Message-Id: <20181116132931.8737-4-kraxel@redhat.com> In-Reply-To: <20181116132931.8737-1-kraxel@redhat.com> References: <20181116132931.8737-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Fri, 16 Nov 2018 13:29:38 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PULL 3/3] help: Provide help for egl-headless X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Erik Skultety , Gerd Hoffmann , Markus Armbruster Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: 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 Message-id: 87ef678b0934d3abba66c46c9e65b57119d29295.1542362949.git.eskulte= t@redhat.com Signed-off-by: Gerd Hoffmann --- 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=3Don|off][,gl=3Don|off]|\n" "-display vnc=3D[,]\n" "-display curses\n" - "-display none" + "-display none\n" + "-display egl-headless[,rendernode=3D]" " 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 +@item egl-headless +Offload all OpenGL operations to a local DRI device. For any graphical dis= play, +this display needs to be paired with either VNC or SPICE displays. @end table ETEXI =20 --=20 2.9.3