All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/12] Enable accelerated OpenGL in qemu
@ 2019-02-22 14:33 Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
                   ` (12 more replies)
  0 siblings, 13 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

V2 changes: addressed feedback from the first review round
V3 changes:
- better fix for missing qemu X11 include, as discussed with upstream
- maintainers.inc entry for virglrenderer
- egl-headless support (see below for details)
- improvements to kmscube recipe
- fix to vte-native to allow building it with gcc 4.8
V4 changes
- address failures uncovered by yocto autobuilder
V5 changes
- remove patches that have been merged to master
- replace BBCLASSEXTEND_remove with PREFERRED_PROVIDER for mesa
recipe variants
V6 changes
- again rebase to master
- tweak oe-selftest to remove unnecessary re-builds of qemu-native
V7 changes
- rename virglrender_git.bb to virglrendender_0.7.0.bb
- update the status of virglrenderer patches
- further clarify the PACKAGECONFIG settings for qemu

Why this? Why now?

1. I think we are heading towards a reality where some kind of working
GL is a 'must' for any kind of UI work.
2. Typically people build images and then transfer them to the NUC or
even target boards for testing - using qemu would be less awkward.
3. Current qemu configuration is basically useless here, as it only
provides a very slow software GL driver from mesa.

0. TLDR:

a) Gtk UI frontend

$ . oe-init-build-env build-virgl
$ bitbake core-image-sato-sdk
$ runqemu kvm gl
$$ run glxgears or any other GL-capable binary inside qemu

b) egl-headless

$ . oe-init-build-env build-virgl
$ bitbake core-image-sato-sdk
$ runqemu kvm egl-headless publicvnc
$ <connect with a vnc viewer to 127.0.0.1:5900>
$$ run glxgears or any other GL-capable binary inside qemu

1. For the local UI, qemu is switched over to use gtk frontend. I simply 
couldn't get SDL frontend to work properly, it only displays a blank black 
window or doesn't start at all. Same thing happens with qemu binaries provided 
by Fedora and opensuse (Ubuntu's qemu lacks virgl support). Seems like SDL support 
has regressed.

2. What is egl-headless?

In this variant, Qemu does not open a UI window at all. Instead, it renders
all graphics, including GL, into a memory buffer, which can be seen with
a vnc or spice client (over a TCP socket). This has the following advantages:

- no need to be physically present at the host machine, output (including GL bits!) 
can be seen remotely
- no need for the host machine to run an X session

3. While the components are built against the most minimum necessary 
mesa-native set (gbm, egl, dri with no drivers), libepoxy loads and uses the 
host GL implementation (through a chrpath hack). This is both to save build 
times, and because the host is likely to have a set of drivers more 
appropriate for the physical machine (e.g. proprietary nvidia stack, 
although I didn't test that).

4. I tested this with
- glamor X server
- weston compositor with drm backend (build core-image-weston, then edit 
  weston.ini in the image to use drm backed instead of fbdev).
- kmscube
- glxgears
- https://www.geeks3d.com/gputest/

The latter two show FPS that is similar to running them directly on the host.

5. Some things I am not sure about:

 - how much of a 'default' should this be for running qemu. It works for me, 
but other people might find it less stable compared to the existing 
sdl-vmware-swrast setup.

- what other tests and demos could be run

- how could this be tested on the autobuilder. I wrote two oe-selftests for 
this (gtk, egl-headless), but one of them does require an X session, and both 
require ability to create opengl contexts on the host.

The following changes since commit 47eb3d00e9d6a66aee1283dab29af8117a006d6d:

  resulttool: Improvements to allow integration to the autobuilder (2019-02-21 12:34:00 +0000)

are available in the Git repository at:

  git://git.yoctoproject.org/poky-contrib akanavin/virgl-gtk
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/virgl-gtk

Alexander Kanavin (12):
  virglrenderer: add a recipe
  qemu: enable virglrenderer and glx options for native/nativesdk builds
  qemu: build target variant with gtk+, and nativesdk variant without
    sdl
  local.conf.sample: adjust the qemu config to enable gtk+ instead of
    sdl
  qemu: remove support for building against host sdl
  qemu: add a gettext-native dependency to gtk option
  qemu: add a patch to avoid a missing definition error
  qemu: add environment variable wrappers to make qemu look good with
    gtk frontend
  qemu: add a backported patch to fix egl-headless support
  runqemu: add options for enabling virgl GL acceleration
  runqemu: do not check for GL libraries
  selftest: add tests for virgl GL acceleration

 meta-poky/conf/local.conf.sample              |  9 +--
 meta-selftest/lib/oeqa/runtime/cases/virgl.py | 28 ++++++++
 meta/conf/distro/include/maintainers.inc      |  1 +
 meta/lib/oeqa/selftest/cases/runtime_test.py  | 52 +++++++++++++++
 meta/recipes-devtools/qemu/qemu.inc           | 41 +++++++-----
 .../qemu/0001-Add-a-missing-X11-include.patch | 65 +++++++++++++++++++
 ...-egl-headless-add-egl_create_context.patch | 50 ++++++++++++++
 ...x-libcap-header-issue-on-some-distro.patch |  2 +-
 ...-messages-when-qemi_cpu_kick_thread-.patch |  2 +-
 meta/recipes-devtools/qemu/qemu_3.1.0.bb      |  2 +
 ...efile.am-explicitly-link-with-libdrm.patch | 31 +++++++++
 .../0001-vtest-add-missing-includes.patch     | 38 +++++++++++
 .../virglrenderer/virglrenderer_0.7.0.bb      | 19 ++++++
 scripts/runqemu                               | 58 +++++++----------
 14 files changed, 340 insertions(+), 58 deletions(-)
 create mode 100644 meta-selftest/lib/oeqa/runtime/cases/virgl.py
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-Add-a-missing-X11-include.patch
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-egl-headless-add-egl_create_context.patch
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb

-- 
2.17.1



^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH 01/12] virglrenderer: add a recipe
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 18:54   ` Khem Raj
  2019-02-22 14:33 ` [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds Alexander Kanavin
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

This component enables hardware-accelerated GL inside QEMU guests.
For more information, see here:

https://lwn.net/Articles/767970/
https://www.collabora.com/news-and-blog/blog/2018/02/12/virtualizing-gpu-access/
https://www.collabora.com/news-and-blog/blog/2018/05/09/gpu-virtualization-update/

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/conf/distro/include/maintainers.inc      |  1 +
 ...efile.am-explicitly-link-with-libdrm.patch | 31 +++++++++++++++
 .../0001-vtest-add-missing-includes.patch     | 38 +++++++++++++++++++
 .../virglrenderer/virglrenderer_0.7.0.bb      | 19 ++++++++++
 4 files changed, 89 insertions(+)
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb

diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 4e3fc103afc..f5e6343904b 100644
--- a/meta/conf/distro/include/maintainers.inc
+++ b/meta/conf/distro/include/maintainers.inc
@@ -700,6 +700,7 @@ RECIPE_MAINTAINER_pn-util-macros = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-v86d = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-vala = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-valgrind = "Alexander Kanavin <alex.kanavin@gmail.com>"
+RECIPE_MAINTAINER_pn-virglrenderer = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-volatile-binds = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER_pn-vte = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-vulkan = "Ross Burton <ross.burton@intel.com>"
diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
new file mode 100644
index 00000000000..aa8d814845e
--- /dev/null
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
@@ -0,0 +1,31 @@
+From d61f7073b8ce159d21811b291c22b273b040c330 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 12 Feb 2019 12:04:52 +0100
+Subject: [PATCH] Makefile.am: explicitly link with libdrm
+
+Otherwise, a failure happens with gold linker:
+
+../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
+
+https://errors.yoctoproject.org/Errors/Details/222046/
+
+Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/153]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 9a0a44e..9b668c8 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,5 +1,6 @@
+ SUBDIRS := gallium/auxiliary
+ AM_LDFLAGS = -lm \
++	$(LIBDRM_LIBS) \
+ 	$(GBM_LIBS) \
+ 	$(EPOXY_LIBS) \
+ 	$(X11_LIBS) \
+-- 
+2.17.1
+
diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
new file mode 100644
index 00000000000..2b4ffa932de
--- /dev/null
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
@@ -0,0 +1,38 @@
+From 05c5c5f43fbffb3317bd9da27d414890d2ef493c Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 18 Jan 2019 13:47:23 +0100
+Subject: [PATCH] vtest: add missing includes
+
+This fixes build failures with musl C library
+
+Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/125]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ vtest/util.c         | 1 +
+ vtest/vtest_server.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/vtest/util.c b/vtest/util.c
+index 0d3c78f..c605253 100644
+--- a/vtest/util.c
++++ b/vtest/util.c
+@@ -26,6 +26,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
++#include <sys/select.h>
+ 
+ int vtest_wait_for_fd_read(int fd)
+ {
+diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c
+index bc6c95f..010721f 100644
+--- a/vtest/vtest_server.c
++++ b/vtest/vtest_server.c
+@@ -31,6 +31,7 @@
+ #include <netinet/in.h>
+ #include <sys/un.h>
+ #include <fcntl.h>
++#include <string.h>
+ 
+ #include "util.h"
+ #include "vtest.h"
diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
new file mode 100644
index 00000000000..500ed4f2d8b
--- /dev/null
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "VirGL virtual OpenGL renderer"
+HOMEPAGE = "https://virgil3d.github.io/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
+
+DEPENDS = "libdrm mesa libepoxy"
+SRCREV = "402c228861c9893f64cffbbcb4cb23044b8c721c"
+SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
+           file://0001-vtest-add-missing-includes.patch \
+           file://0001-Makefile.am-explicitly-link-with-libdrm.patch \
+           "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
+
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-25 11:02   ` Richard Purdie
  2019-02-22 14:33 ` [PATCH 03/12] qemu: build target variant with gtk+, and nativesdk variant without sdl Alexander Kanavin
                   ` (10 subsequent siblings)
  12 siblings, 1 reply; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

Except for ming32/darwin, which do not support them.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-devtools/qemu/qemu.inc | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index c127434b020..95e9e0ede77 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -74,15 +74,15 @@ PACKAGECONFIG ??= " \
     fdt sdl kvm \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
 "
-PACKAGECONFIG_class-native ??= "fdt alsa kvm"
-PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
+PACKAGECONFIG_class-native ??= "fdt alsa kvm virglrenderer glx"
+PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm virglrenderer glx"
 
 # Handle distros such as CentOS 5 32-bit that do not have kvm support
 PACKAGECONFIG_class-native_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}"
 
-# Disable kvm on targets that do not support it
-PACKAGECONFIG_remove_darwin = "kvm"
-PACKAGECONFIG_remove_mingw32 = "kvm"
+# Disable kvm/virgl/mesa on targets that do not support it
+PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+"
+PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"
 
 PACKAGECONFIG[sdl] = "--enable-sdl --with-sdlabi=2.0,--disable-sdl,libsdl2"
 PACKAGECONFIG[virtfs] = "--enable-virtfs --enable-attr,--disable-virtfs,libcap attr,"
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 03/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 04/12] local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl Alexander Kanavin
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

As sdl is deprecated in favor of gtk+, it should not be the default.

For native/nativesdk builds the decision to build with gtk+ frontend
is done via local.conf template from poky distro. (previously
it was done from there, and from the recipe, which created confusion)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-devtools/qemu/qemu.inc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 95e9e0ede77..07f78058e7b 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -71,11 +71,11 @@ do_install_append() {
 # END of qemu-mips workaround
 
 PACKAGECONFIG ??= " \
-    fdt sdl kvm \
+    fdt gtk+ kvm \
     ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
 "
 PACKAGECONFIG_class-native ??= "fdt alsa kvm virglrenderer glx"
-PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm virglrenderer glx"
+PACKAGECONFIG_class-nativesdk ??= "fdt kvm virglrenderer glx"
 
 # Handle distros such as CentOS 5 32-bit that do not have kvm support
 PACKAGECONFIG_class-native_remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}"
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 04/12] local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (2 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 03/12] qemu: build target variant with gtk+, and nativesdk variant without sdl Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 05/12] qemu: remove support for building against host sdl Alexander Kanavin
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

As sdl is deprecated in favor of gtk+, it should not be the default.
The recipe itself no longer enables gtk+ or sdl for native/nativesdk
builds.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta-poky/conf/local.conf.sample | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/meta-poky/conf/local.conf.sample b/meta-poky/conf/local.conf.sample
index cf96598819c..961387acbae 100644
--- a/meta-poky/conf/local.conf.sample
+++ b/meta-poky/conf/local.conf.sample
@@ -236,12 +236,9 @@ BB_DISKMON_DIRS ??= "\
 # Qemu configuration
 #
 # By default qemu will build with a builtin VNC server where graphical output can be
-# seen. The two lines below enable the SDL backend too. By default libsdl2-native will
-# be built, if you want to use your host's libSDL instead of the minimal libsdl built
-# by libsdl2-native then uncomment the ASSUME_PROVIDED line below.
-PACKAGECONFIG_append_pn-qemu-native = " sdl"
-PACKAGECONFIG_append_pn-nativesdk-qemu = " sdl"
-#ASSUME_PROVIDED += "libsdl2-native"
+# seen. The two lines below enable the Gtk UI frontend.
+PACKAGECONFIG_append_pn-qemu-native = " gtk+"
+PACKAGECONFIG_append_pn-nativesdk-qemu = " gtk+"
 
 # CONF_VERSION is increased each time build/conf/ changes incompatibly and is used to
 # track the version of this file when it was generated. This can safely be ignored if
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 05/12] qemu: remove support for building against host sdl
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (3 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 04/12] local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 06/12] qemu: add a gettext-native dependency to gtk option Alexander Kanavin
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

This hasn't been the default for a long time (as some distros don't
support it), and with gtk+ being the new default shouldn't
be needed at all.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-devtools/qemu/qemu.inc | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index 07f78058e7b..dccf9dcb00c 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -39,14 +39,6 @@ export LIBTOOL="${HOST_SYS}-libtool"
 
 B = "${WORKDIR}/build"
 
-do_configure_prepend_class-native() {
-	# Append build host pkg-config paths for native target since the host may provide sdl
-	BHOST_PKGCONFIG_PATH=$(PATH=/usr/bin:/bin pkg-config --variable pc_path pkg-config || echo "")
-	if [ ! -z "$BHOST_PKGCONFIG_PATH" ]; then
-		export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$BHOST_PKGCONFIG_PATH
-	fi
-}
-
 do_configure() {
     ${S}/configure ${EXTRA_OECONF}
 }
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 06/12] qemu: add a gettext-native dependency to gtk option
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (4 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 05/12] qemu: remove support for building against host sdl Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 07/12] qemu: add a patch to avoid a missing definition error Alexander Kanavin
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

xgettext/msgmerge is used during do_install() when gtk is enabled:
https://github.com/qemu/qemu/blob/master/Makefile#L743

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-devtools/qemu/qemu.inc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index dccf9dcb00c..b80b9e131a1 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -87,7 +87,7 @@ PACKAGECONFIG[vnc-png] = "--enable-vnc --enable-vnc-png,--disable-vnc-png,libpng
 PACKAGECONFIG[libcurl] = "--enable-curl,--disable-curl,libcurl,"
 PACKAGECONFIG[nss] = "--enable-smartcard,--disable-smartcard,nss,"
 PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,"
-PACKAGECONFIG[gtk+] = "--enable-gtk --enable-vte,--disable-gtk --disable-vte,gtk+3 vte"
+PACKAGECONFIG[gtk+] = "--enable-gtk --enable-vte,--disable-gtk --disable-vte,gtk+3 vte gettext-native"
 PACKAGECONFIG[libcap-ng] = "--enable-cap-ng,--disable-cap-ng,libcap-ng,"
 PACKAGECONFIG[ssh2] = "--enable-libssh2,--disable-libssh2,libssh2,"
 PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt,"
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 07/12] qemu: add a patch to avoid a missing definition error
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (5 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 06/12] qemu: add a gettext-native dependency to gtk option Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 08/12] qemu: add environment variable wrappers to make qemu look good with gtk frontend Alexander Kanavin
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

| In file included from /home/alexander/development/poky/build-virgl-gtk-64/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qemu/3.1.0-r0/qemu-3.1.0/include/ui/egl-context.h:5,
|                  from /home/alexander/development/poky/build-virgl-gtk-64/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qemu/3.1.0-r0/qemu-3.1.0/ui/egl-context.c:3:
| /home/alexander/development/poky/build-virgl-gtk-64/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-qemu/3.1.0-r0/qemu-3.1.0/include/ui/egl-helpers.h:46:55: error: unknown type name 'Window'; did you mean 'minor'?
|  EGLSurface qemu_egl_init_surface_x11(EGLContext ectx, Window win);
|                                                        ^~~~~~
|                                                        minor

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 .../qemu/0001-Add-a-missing-X11-include.patch | 65 +++++++++++++++++++
 ...x-libcap-header-issue-on-some-distro.patch |  2 +-
 ...-messages-when-qemi_cpu_kick_thread-.patch |  2 +-
 meta/recipes-devtools/qemu/qemu_3.1.0.bb      |  1 +
 4 files changed, 68 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-Add-a-missing-X11-include.patch

diff --git a/meta/recipes-devtools/qemu/qemu/0001-Add-a-missing-X11-include.patch b/meta/recipes-devtools/qemu/qemu/0001-Add-a-missing-X11-include.patch
new file mode 100644
index 00000000000..192936e1e78
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-Add-a-missing-X11-include.patch
@@ -0,0 +1,65 @@
+From eb1a215a4f86dde4493c3e22ad9f6d698850915e Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 20 Dec 2018 18:06:29 +0100
+Subject: [PATCH] egl-helpers.h: do not depend on X11 Window type, use
+ EGLNativeWindowType
+
+It was assumed that mesa provides the necessary X11 includes,
+but it is not always the case, as it can be configured without x11 support.
+
+Upstream-Status: Submitted [http://lists.nongnu.org/archive/html/qemu-devel/2019-01/msg03706.html]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ include/ui/egl-helpers.h | 2 +-
+ ui/egl-helpers.c         | 4 ++--
+ ui/gtk-egl.c             | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/include/ui/egl-helpers.h b/include/ui/egl-helpers.h
+index 9db7293b..3fc656a7 100644
+--- a/include/ui/egl-helpers.h
++++ b/include/ui/egl-helpers.h
+@@ -43,7 +43,7 @@ void egl_dmabuf_release_texture(QemuDmaBuf *dmabuf);
+ 
+ #endif
+ 
+-EGLSurface qemu_egl_init_surface_x11(EGLContext ectx, Window win);
++EGLSurface qemu_egl_init_surface_x11(EGLContext ectx, EGLNativeWindowType win);
+ 
+ int qemu_egl_init_dpy_x11(EGLNativeDisplayType dpy, DisplayGLMode mode);
+ int qemu_egl_init_dpy_mesa(EGLNativeDisplayType dpy, DisplayGLMode mode);
+diff --git a/ui/egl-helpers.c b/ui/egl-helpers.c
+index 4f475142..5e115b3f 100644
+--- a/ui/egl-helpers.c
++++ b/ui/egl-helpers.c
+@@ -273,14 +273,14 @@ void egl_dmabuf_release_texture(QemuDmaBuf *dmabuf)
+ 
+ /* ---------------------------------------------------------------------- */
+ 
+-EGLSurface qemu_egl_init_surface_x11(EGLContext ectx, Window win)
++EGLSurface qemu_egl_init_surface_x11(EGLContext ectx, EGLNativeWindowType win)
+ {
+     EGLSurface esurface;
+     EGLBoolean b;
+ 
+     esurface = eglCreateWindowSurface(qemu_egl_display,
+                                       qemu_egl_config,
+-                                      (EGLNativeWindowType)win, NULL);
++                                      win, NULL);
+     if (esurface == EGL_NO_SURFACE) {
+         error_report("egl: eglCreateWindowSurface failed");
+         return NULL;
+diff --git a/ui/gtk-egl.c b/ui/gtk-egl.c
+index 5420c236..1f941162 100644
+--- a/ui/gtk-egl.c
++++ b/ui/gtk-egl.c
+@@ -54,7 +54,7 @@ void gd_egl_init(VirtualConsole *vc)
+     }
+ 
+     vc->gfx.ectx = qemu_egl_init_ctx();
+-    vc->gfx.esurface = qemu_egl_init_surface_x11(vc->gfx.ectx, x11_window);
++    vc->gfx.esurface = qemu_egl_init_surface_x11(vc->gfx.ectx, (EGLNativeWindowType)x11_window);
+ 
+     assert(vc->gfx.esurface);
+ }
diff --git a/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch b/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch
index 690d2717f13..9cbe8388119 100644
--- a/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch
+++ b/meta/recipes-devtools/qemu/qemu/0012-fix-libcap-header-issue-on-some-distro.patch
@@ -1,4 +1,4 @@
-From 091a16100a7e1e9e6493663392c5ba2884b99723 Mon Sep 17 00:00:00 2001
+From d3e0b8dac7c2eb20d7fcff747bc98b981f4398ef Mon Sep 17 00:00:00 2001
 From: Hongxu Jia <hongxu.jia@windriver.com>
 Date: Tue, 12 Mar 2013 09:54:06 +0800
 Subject: [PATCH] fix libcap header issue on some distro
diff --git a/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch b/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
index 2232cb80e29..27e508c5a35 100644
--- a/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
+++ b/meta/recipes-devtools/qemu/qemu/0013-cpus.c-Add-error-messages-when-qemi_cpu_kick_thread-.patch
@@ -1,4 +1,4 @@
-From 3eeeaa45dd12c9f3942cfc8647a08c93fffe19ea Mon Sep 17 00:00:00 2001
+From 861c522df7791d7e93743d5641f3ef2a5a3c4632 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
 Date: Wed, 12 Aug 2015 15:11:30 -0500
 Subject: [PATCH] cpus.c: Add error messages when qemi_cpu_kick_thread fails.
diff --git a/meta/recipes-devtools/qemu/qemu_3.1.0.bb b/meta/recipes-devtools/qemu/qemu_3.1.0.bb
index 67cebcc8308..cd7cd67a3f0 100644
--- a/meta/recipes-devtools/qemu/qemu_3.1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu_3.1.0.bb
@@ -21,6 +21,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
            file://0009-apic-fixup-fallthrough-to-PIC.patch \
            file://0010-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
            file://0011-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
+           file://0001-Add-a-missing-X11-include.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 08/12] qemu: add environment variable wrappers to make qemu look good with gtk frontend
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (6 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 07/12] qemu: add a patch to avoid a missing definition error Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 09/12] qemu: add a backported patch to fix egl-headless support Alexander Kanavin
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

GTK_THEME instructs gtk to use its built-in theme. Otherwise
gtk attempts to use the theme from the host, which may be from
a totally mismatching gtk version.

On the other hand FONTCONFIG_PATH tells it to use the host fonts,
as providing fonts in the native sysroot and instructing the components
to use them is a lot more tricky.

GDK_PIXBUF_MODULE_FILE is set, because otherwise qemu works but
fills stdout with error messages, which eventually fill the pipe
they go into. That pipe is read from only when qemu exits (to
collect any error messages) by runqemu script. The pipe fill-up
causes the qemu process to lock up.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/recipes-devtools/qemu/qemu.inc | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-devtools/qemu/qemu.inc
index b80b9e131a1..9a989f00b0b 100644
--- a/meta/recipes-devtools/qemu/qemu.inc
+++ b/meta/recipes-devtools/qemu/qemu.inc
@@ -48,6 +48,25 @@ do_install () {
 	oe_runmake 'DESTDIR=${D}' install
 }
 
+make_qemu_wrapper() {
+        gdk_pixbuf_module_file=`pkg-config --variable=gdk_pixbuf_cache_file gdk-pixbuf-2.0`
+
+        for tool in `ls ${D}${bindir}/qemu-system-*`; do
+                create_wrapper $tool \
+                        GDK_PIXBUF_MODULE_FILE=$gdk_pixbuf_module_file \
+                        FONTCONFIG_PATH=/etc/fonts \
+                        GTK_THEME=Adwaita
+        done
+}
+
+do_install_append_class-native() {
+     ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)}
+}
+
+do_install_append_class-nativesdk() {
+     ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)}
+}
+
 # The following fragment will create a wrapper for qemu-mips user emulation
 # binary in order to work around a segmentation fault issue. Basically, by
 # default, the reserved virtual address space for 32-on-64 bit is set to 4GB.
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 09/12] qemu: add a backported patch to fix egl-headless support
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (7 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 08/12] qemu: add environment variable wrappers to make qemu look good with gtk frontend Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration Alexander Kanavin
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 ...-egl-headless-add-egl_create_context.patch | 50 +++++++++++++++++++
 meta/recipes-devtools/qemu/qemu_3.1.0.bb      |  1 +
 2 files changed, 51 insertions(+)
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-egl-headless-add-egl_create_context.patch

diff --git a/meta/recipes-devtools/qemu/qemu/0001-egl-headless-add-egl_create_context.patch b/meta/recipes-devtools/qemu/qemu/0001-egl-headless-add-egl_create_context.patch
new file mode 100644
index 00000000000..d9326c017ad
--- /dev/null
+++ b/meta/recipes-devtools/qemu/qemu/0001-egl-headless-add-egl_create_context.patch
@@ -0,0 +1,50 @@
+From 952e5d584f5aabe41298c278065fe628f3f7aa7a Mon Sep 17 00:00:00 2001
+From: Gerd Hoffmann <kraxel@redhat.com>
+Date: Thu, 29 Nov 2018 13:35:02 +0100
+Subject: [PATCH] egl-headless: add egl_create_context
+
+We must set the correct context (via eglMakeCurrent) before
+calling qemu_egl_create_context, so we need a thin wrapper and can't
+hook qemu_egl_create_context directly as ->dpy_gl_ctx_create callback.
+
+Reported-by: Frederik Carlier <frederik.carlier@quamotion.mobi>
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+Message-id: 20181129123502.30129-1-kraxel@redhat.com
+
+Upstream-Status: Backport [https://git.qemu.org/?p=qemu.git;a=commit;h=952e5d584f5aabe41298c278065fe628f3f7aa7a]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ ui/egl-headless.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/ui/egl-headless.c b/ui/egl-headless.c
+index 4cf3bbc0e4..519e7bad32 100644
+--- a/ui/egl-headless.c
++++ b/ui/egl-headless.c
+@@ -38,6 +38,14 @@ static void egl_gfx_switch(DisplayChangeListener *dcl,
+     edpy->ds = new_surface;
+ }
+ 
++static QEMUGLContext egl_create_context(DisplayChangeListener *dcl,
++                                        QEMUGLParams *params)
++{
++    eglMakeCurrent(qemu_egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE,
++                   qemu_egl_rn_ctx);
++    return qemu_egl_create_context(dcl, params);
++}
++
+ static void egl_scanout_disable(DisplayChangeListener *dcl)
+ {
+     egl_dpy *edpy = container_of(dcl, egl_dpy, dcl);
+@@ -150,7 +158,7 @@ static const DisplayChangeListenerOps egl_ops = {
+     .dpy_gfx_update          = egl_gfx_update,
+     .dpy_gfx_switch          = egl_gfx_switch,
+ 
+-    .dpy_gl_ctx_create       = qemu_egl_create_context,
++    .dpy_gl_ctx_create       = egl_create_context,
+     .dpy_gl_ctx_destroy      = qemu_egl_destroy_context,
+     .dpy_gl_ctx_make_current = qemu_egl_make_context_current,
+     .dpy_gl_ctx_get_current  = qemu_egl_get_current_context,
+-- 
+2.17.1
+
diff --git a/meta/recipes-devtools/qemu/qemu_3.1.0.bb b/meta/recipes-devtools/qemu/qemu_3.1.0.bb
index cd7cd67a3f0..ea4277eddea 100644
--- a/meta/recipes-devtools/qemu/qemu_3.1.0.bb
+++ b/meta/recipes-devtools/qemu/qemu_3.1.0.bb
@@ -22,6 +22,7 @@ SRC_URI = "https://download.qemu.org/${BPN}-${PV}.tar.xz \
            file://0010-linux-user-Fix-webkitgtk-hangs-on-32-bit-x86-target.patch \
            file://0011-Revert-linux-user-fix-mmap-munmap-mprotect-mremap-sh.patch \
            file://0001-Add-a-missing-X11-include.patch \
+           file://0001-egl-headless-add-egl_create_context.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (8 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 09/12] qemu: add a backported patch to fix egl-headless support Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 11/12] runqemu: do not check for GL libraries Alexander Kanavin
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 scripts/runqemu | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/scripts/runqemu b/scripts/runqemu
index d171c4f8945..054037312b8 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -74,6 +74,9 @@ of the following environment variables (in any order):
   MACHINE - the machine name (optional, autodetected from KERNEL filename if unspecified)
   Simplified QEMU command-line options can be passed with:
     nographic - disable video console
+    gl - enable virgl-based GL acceleration
+    gl-es - enable virgl-based GL acceleration, using OpenGL ES
+    egl-headless - enable headless EGL output; use vnc or spice to see it
     serial - enable a serial console on /dev/ttyS0
     serialstdio - enable a serial console on the console (regardless of graphics mode)
     slirp - enable user networking, no root privileges is required
@@ -434,6 +437,26 @@ class BaseConfig(object):
             elif arg == 'nographic':
                 self.qemu_opt_script += ' -nographic'
                 self.kernel_cmdline_script += ' console=ttyS0'
+            elif arg == 'gl':
+                self.qemu_opt_script += ' -vga virtio -display gtk,gl=on'
+            elif arg == 'gl-es':
+                self.qemu_opt_script += ' -vga virtio -display gtk,gl=es'
+            elif arg == 'egl-headless':
+                self.qemu_opt_script += ' -vga virtio -display egl-headless'
+                # As runqemu can be run within bitbake (when using testimage, for example),
+                # we need to ensure that we run host pkg-config, and that it does not
+                # get mis-directed to native build paths set by bitbake.
+                try:
+                    del os.environ['PKG_CONFIG_PATH']
+                    del os.environ['PKG_CONFIG_DIR']
+                    del os.environ['PKG_CONFIG_LIBDIR']
+                except KeyError:
+                    pass
+                try:
+                    dripath = subprocess.check_output("PATH=/bin:/usr/bin:$PATH pkg-config --variable=dridriverdir dri", shell=True)
+                except subprocess.CalledProcessError as e:
+                    raise RunQemuError("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.")
+                os.environ['LIBGL_DRIVERS_PATH'] = dripath.decode('utf-8').strip()
             elif arg == 'serial':
                 self.kernel_cmdline_script += ' console=ttyS0'
                 self.serialconsole = True
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 11/12] runqemu: do not check for GL libraries
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (9 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-22 14:33 ` [PATCH 12/12] selftest: add tests for virgl GL acceleration Alexander Kanavin
  2019-02-25  9:47 ` [PATCH 00/12] Enable accelerated OpenGL in qemu Richard Purdie
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

qemu has been using libepoxy for a long time, and libepoxy loads GL via dlopen()
only when instructed to.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 scripts/runqemu | 35 -----------------------------------
 1 file changed, 35 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 054037312b8..ec6188ba4a2 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -118,39 +118,6 @@ def check_tun():
     if not os.access(dev_tun, os.W_OK):
         raise RunQemuError("TUN control device %s is not writable, please fix (e.g. sudo chmod 666 %s)" % (dev_tun, dev_tun))
 
-def check_libgl(qemu_bin):
-    cmd = ('ldd', qemu_bin)
-    logger.debug('Running %s...' % str(cmd))
-    need_gl = subprocess.check_output(cmd).decode('utf-8')
-    if re.search('libGLU', need_gl):
-        # We can't run without a libGL.so
-        libgl = False
-        check_files = (('/usr/lib/libGL.so', '/usr/lib/libGLU.so'), \
-            ('/usr/lib64/libGL.so', '/usr/lib64/libGLU.so'), \
-            ('/usr/lib/*-linux-gnu/libGL.so', '/usr/lib/*-linux-gnu/libGLU.so'))
-
-        for (f1, f2) in check_files:
-            if re.search('\*', f1):
-                for g1 in glob.glob(f1):
-                    if libgl:
-                        break
-                    if os.path.exists(g1):
-                        for g2 in glob.glob(f2):
-                            if os.path.exists(g2):
-                                libgl = True
-                                break
-                if libgl:
-                    break
-            else:
-                if os.path.exists(f1) and os.path.exists(f2):
-                    libgl = True
-                    break
-        if not libgl:
-            logger.error("You need libGL.so and libGLU.so to exist in your library path to run the QEMU emulator.")
-            logger.error("Ubuntu package names are: libgl1-mesa-dev and libglu1-mesa-dev.")
-            logger.error("Fedora package names are: mesa-libGL-devel mesa-libGLU-devel.")
-            raise RunQemuError('%s requires libGLU, but not found' % qemu_bin)
-
 def get_first_file(cmds):
     """Return first file found in wildcard cmds"""
     for cmd in cmds:
@@ -1194,8 +1161,6 @@ class BaseConfig(object):
         if not os.access(qemu_bin, os.X_OK):
             raise OEPathError("No QEMU binary '%s' could be found" % qemu_bin)
 
-        check_libgl(qemu_bin)
-
         self.qemu_opt = "%s %s %s %s" % (qemu_bin, self.get('NETWORK_CMD'), self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND'))
 
         for ovmf in self.ovmf_bios:
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH 12/12] selftest: add tests for virgl GL acceleration
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (10 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 11/12] runqemu: do not check for GL libraries Alexander Kanavin
@ 2019-02-22 14:33 ` Alexander Kanavin
  2019-02-25  9:47 ` [PATCH 00/12] Enable accelerated OpenGL in qemu Richard Purdie
  12 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 14:33 UTC (permalink / raw)
  To: openembedded-core

Note that the tests require that the host machine has a X display,
has mesa development files installed and is able to create OpenGL contexts.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta-selftest/lib/oeqa/runtime/cases/virgl.py | 28 ++++++++++
 meta/lib/oeqa/selftest/cases/runtime_test.py  | 52 +++++++++++++++++++
 2 files changed, 80 insertions(+)
 create mode 100644 meta-selftest/lib/oeqa/runtime/cases/virgl.py

diff --git a/meta-selftest/lib/oeqa/runtime/cases/virgl.py b/meta-selftest/lib/oeqa/runtime/cases/virgl.py
new file mode 100644
index 00000000000..cc25e77d9c0
--- /dev/null
+++ b/meta-selftest/lib/oeqa/runtime/cases/virgl.py
@@ -0,0 +1,28 @@
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+import subprocess
+import oe
+
+class VirglTest(OERuntimeTestCase):
+
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_kernel_driver(self):
+        status, output = self.target.run('dmesg|grep virgl')
+        self.assertEqual(status, 0, "Checking for virgl driver in dmesg returned non-zero: %d\n%s" % (status, output))
+        self.assertIn("virgl 3d acceleration enabled", output, "virgl acceleration seems to be disabled:\n%s" %(output))
+
+    @OETestDepends(['virgl.VirglTest.test_kernel_driver'])
+    def test_kmscube(self):
+        from fnmatch import fnmatch
+
+        try:
+            distro = oe.lsb.distro_identifier()
+        except Exception:
+            distro = None
+
+        if distro and fnmatch(distro, 'centos-7'):
+            self.skipTest('kmscube is not working when centos 7 is the host OS')
+
+        status, output = self.target.run('kmscube', timeout=30)
+        self.assertEqual(status, 0, "kmscube exited with non-zero status %d and output:\n%s" %(status, output))
+        self.assertIn('renderer: "virgl"', output, "kmscube does not seem to use virgl:\n%s" %(output))
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 906e460d4f8..3cecdc8e42b 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -168,6 +168,58 @@ class TestImage(OESelftestTestCase):
         # remove the oeqa-feed-sign temporal directory
         shutil.rmtree(self.gpg_home, ignore_errors=True)
 
+    @OETestID(1883)
+    def test_testimage_virgl_gtk(self):
+        """
+        Summary: Check host-assisted accelerate OpenGL functionality in qemu with gtk frontend
+        Expected: 1. Check that virgl kernel driver is loaded and 3d acceleration is enabled
+                  2. Check that kmscube demo runs without crashing.
+        Product: oe-core
+        Author: Alexander Kanavin <alex.kanavin@gmail.com>
+        """
+        if "DISPLAY" not in os.environ:
+            self.skipTest("virgl gtk test must be run inside a X session")
+        qemu_packageconfig = get_bb_var('PACKAGECONFIG', 'qemu-native')
+        features = 'INHERIT += "testimage"\n'
+        if 'gtk+' not in qemu_packageconfig:
+            features += 'PACKAGECONFIG_append_pn-qemu-native = " gtk+"\n'
+        features += 'TEST_SUITES = "ping ssh virgl"\n'
+        features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n'
+        features += 'IMAGE_INSTALL_append = " kmscube"\n'
+        features += 'TEST_RUNQEMUPARAMS = "gl"\n'
+        self.write_config(features)
+        bitbake('core-image-minimal')
+        bitbake('-c testimage core-image-minimal')
+
+    @OETestID(1883)
+    def test_testimage_virgl_headless(self):
+        """
+        Summary: Check host-assisted accelerate OpenGL functionality in qemu with egl-headless frontend
+        Expected: 1. Check that virgl kernel driver is loaded and 3d acceleration is enabled
+                  2. Check that kmscube demo runs without crashing.
+        Product: oe-core
+        Author: Alexander Kanavin <alex.kanavin@gmail.com>
+        """
+        import subprocess, os
+        try:
+            content = os.listdir("/dev/dri")
+            if len([i for i in content if i.startswith('render')]) == 0:
+                self.skipTest("No render nodes found in /dev/dri: %s" %(content))
+        except FileNotFoundError:
+            self.skipTest("/dev/dri directory does not exist; no render nodes available on this machine.")
+        try:
+            dripath = subprocess.check_output("pkg-config --variable=dridriverdir dri", shell=True)
+        except subprocess.CalledProcessError as e:
+            self.skipTest("Could not determine the path to dri drivers on the host via pkg-config.\nPlease install Mesa development files (particularly, dri.pc) on the host machine.")
+        features = 'INHERIT += "testimage"\n'
+        features += 'TEST_SUITES = "ping ssh virgl"\n'
+        features += 'IMAGE_FEATURES_append = " ssh-server-dropbear"\n'
+        features += 'IMAGE_INSTALL_append = " kmscube"\n'
+        features += 'TEST_RUNQEMUPARAMS = "egl-headless"\n'
+        self.write_config(features)
+        bitbake('core-image-minimal')
+        bitbake('-c testimage core-image-minimal')
+
 class Postinst(OESelftestTestCase):
     @OETestID(1540)
     @OETestID(1545)
-- 
2.17.1



^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-22 14:33 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
@ 2019-02-22 18:54   ` Khem Raj
  2019-02-22 19:11     ` Alexander Kanavin
  0 siblings, 1 reply; 29+ messages in thread
From: Khem Raj @ 2019-02-22 18:54 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: Patches and discussions about the oe-core layer

https://errors.yoctoproject.org/Errors/Details/229902/

mips/glibc

On Fri, Feb 22, 2019 at 6:34 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> This component enables hardware-accelerated GL inside QEMU guests.
> For more information, see here:
>
> https://lwn.net/Articles/767970/
> https://www.collabora.com/news-and-blog/blog/2018/02/12/virtualizing-gpu-access/
> https://www.collabora.com/news-and-blog/blog/2018/05/09/gpu-virtualization-update/
>
> Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> ---
>  meta/conf/distro/include/maintainers.inc      |  1 +
>  ...efile.am-explicitly-link-with-libdrm.patch | 31 +++++++++++++++
>  .../0001-vtest-add-missing-includes.patch     | 38 +++++++++++++++++++
>  .../virglrenderer/virglrenderer_0.7.0.bb      | 19 ++++++++++
>  4 files changed, 89 insertions(+)
>  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
>  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
>  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
>
> diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
> index 4e3fc103afc..f5e6343904b 100644
> --- a/meta/conf/distro/include/maintainers.inc
> +++ b/meta/conf/distro/include/maintainers.inc
> @@ -700,6 +700,7 @@ RECIPE_MAINTAINER_pn-util-macros = "Armin Kuster <akuster808@gmail.com>"
>  RECIPE_MAINTAINER_pn-v86d = "Alexander Kanavin <alex.kanavin@gmail.com>"
>  RECIPE_MAINTAINER_pn-vala = "Alexander Kanavin <alex.kanavin@gmail.com>"
>  RECIPE_MAINTAINER_pn-valgrind = "Alexander Kanavin <alex.kanavin@gmail.com>"
> +RECIPE_MAINTAINER_pn-virglrenderer = "Alexander Kanavin <alex.kanavin@gmail.com>"
>  RECIPE_MAINTAINER_pn-volatile-binds = "Chen Qi <Qi.Chen@windriver.com>"
>  RECIPE_MAINTAINER_pn-vte = "Anuj Mittal <anuj.mittal@intel.com>"
>  RECIPE_MAINTAINER_pn-vulkan = "Ross Burton <ross.burton@intel.com>"
> diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> new file mode 100644
> index 00000000000..aa8d814845e
> --- /dev/null
> +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> @@ -0,0 +1,31 @@
> +From d61f7073b8ce159d21811b291c22b273b040c330 Mon Sep 17 00:00:00 2001
> +From: Alexander Kanavin <alex.kanavin@gmail.com>
> +Date: Tue, 12 Feb 2019 12:04:52 +0100
> +Subject: [PATCH] Makefile.am: explicitly link with libdrm
> +
> +Otherwise, a failure happens with gold linker:
> +
> +../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
> +
> +https://errors.yoctoproject.org/Errors/Details/222046/
> +
> +Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/153]
> +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> +---
> + src/Makefile.am | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/src/Makefile.am b/src/Makefile.am
> +index 9a0a44e..9b668c8 100644
> +--- a/src/Makefile.am
> ++++ b/src/Makefile.am
> +@@ -1,5 +1,6 @@
> + SUBDIRS := gallium/auxiliary
> + AM_LDFLAGS = -lm \
> ++      $(LIBDRM_LIBS) \
> +       $(GBM_LIBS) \
> +       $(EPOXY_LIBS) \
> +       $(X11_LIBS) \
> +--
> +2.17.1
> +
> diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> new file mode 100644
> index 00000000000..2b4ffa932de
> --- /dev/null
> +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> @@ -0,0 +1,38 @@
> +From 05c5c5f43fbffb3317bd9da27d414890d2ef493c Mon Sep 17 00:00:00 2001
> +From: Alexander Kanavin <alex.kanavin@gmail.com>
> +Date: Fri, 18 Jan 2019 13:47:23 +0100
> +Subject: [PATCH] vtest: add missing includes
> +
> +This fixes build failures with musl C library
> +
> +Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/125]
> +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> +---
> + vtest/util.c         | 1 +
> + vtest/vtest_server.c | 1 +
> + 2 files changed, 2 insertions(+)
> +
> +diff --git a/vtest/util.c b/vtest/util.c
> +index 0d3c78f..c605253 100644
> +--- a/vtest/util.c
> ++++ b/vtest/util.c
> +@@ -26,6 +26,7 @@
> + #include <stdio.h>
> + #include <string.h>
> + #include <unistd.h>
> ++#include <sys/select.h>
> +
> + int vtest_wait_for_fd_read(int fd)
> + {
> +diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c
> +index bc6c95f..010721f 100644
> +--- a/vtest/vtest_server.c
> ++++ b/vtest/vtest_server.c
> +@@ -31,6 +31,7 @@
> + #include <netinet/in.h>
> + #include <sys/un.h>
> + #include <fcntl.h>
> ++#include <string.h>
> +
> + #include "util.h"
> + #include "vtest.h"
> diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> new file mode 100644
> index 00000000000..500ed4f2d8b
> --- /dev/null
> +++ b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> @@ -0,0 +1,19 @@
> +SUMMARY = "VirGL virtual OpenGL renderer"
> +HOMEPAGE = "https://virgil3d.github.io/"
> +
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
> +
> +DEPENDS = "libdrm mesa libepoxy"
> +SRCREV = "402c228861c9893f64cffbbcb4cb23044b8c721c"
> +SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
> +           file://0001-vtest-add-missing-includes.patch \
> +           file://0001-Makefile.am-explicitly-link-with-libdrm.patch \
> +           "
> +
> +S = "${WORKDIR}/git"
> +
> +inherit autotools pkgconfig
> +
> +BBCLASSEXTEND = "native nativesdk"
> +
> --
> 2.17.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-22 18:54   ` Khem Raj
@ 2019-02-22 19:11     ` Alexander Kanavin
  2019-02-23 17:56       ` Khem Raj
  2019-02-23 22:30       ` Adrian Bunk
  0 siblings, 2 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-22 19:11 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

Probably this is the very first time virgl is built for mips :-)

Note that it is useful only if you intend to run qemu on that
platform, so I wonder if we could just blacklist it...

Alex

On Fri, 22 Feb 2019 at 19:54, Khem Raj <raj.khem@gmail.com> wrote:
>
> https://errors.yoctoproject.org/Errors/Details/229902/
>
> mips/glibc
>
> On Fri, Feb 22, 2019 at 6:34 AM Alexander Kanavin
> <alex.kanavin@gmail.com> wrote:
> >
> > This component enables hardware-accelerated GL inside QEMU guests.
> > For more information, see here:
> >
> > https://lwn.net/Articles/767970/
> > https://www.collabora.com/news-and-blog/blog/2018/02/12/virtualizing-gpu-access/
> > https://www.collabora.com/news-and-blog/blog/2018/05/09/gpu-virtualization-update/
> >
> > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > ---
> >  meta/conf/distro/include/maintainers.inc      |  1 +
> >  ...efile.am-explicitly-link-with-libdrm.patch | 31 +++++++++++++++
> >  .../0001-vtest-add-missing-includes.patch     | 38 +++++++++++++++++++
> >  .../virglrenderer/virglrenderer_0.7.0.bb      | 19 ++++++++++
> >  4 files changed, 89 insertions(+)
> >  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> >  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> >  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> >
> > diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
> > index 4e3fc103afc..f5e6343904b 100644
> > --- a/meta/conf/distro/include/maintainers.inc
> > +++ b/meta/conf/distro/include/maintainers.inc
> > @@ -700,6 +700,7 @@ RECIPE_MAINTAINER_pn-util-macros = "Armin Kuster <akuster808@gmail.com>"
> >  RECIPE_MAINTAINER_pn-v86d = "Alexander Kanavin <alex.kanavin@gmail.com>"
> >  RECIPE_MAINTAINER_pn-vala = "Alexander Kanavin <alex.kanavin@gmail.com>"
> >  RECIPE_MAINTAINER_pn-valgrind = "Alexander Kanavin <alex.kanavin@gmail.com>"
> > +RECIPE_MAINTAINER_pn-virglrenderer = "Alexander Kanavin <alex.kanavin@gmail.com>"
> >  RECIPE_MAINTAINER_pn-volatile-binds = "Chen Qi <Qi.Chen@windriver.com>"
> >  RECIPE_MAINTAINER_pn-vte = "Anuj Mittal <anuj.mittal@intel.com>"
> >  RECIPE_MAINTAINER_pn-vulkan = "Ross Burton <ross.burton@intel.com>"
> > diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> > new file mode 100644
> > index 00000000000..aa8d814845e
> > --- /dev/null
> > +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> > @@ -0,0 +1,31 @@
> > +From d61f7073b8ce159d21811b291c22b273b040c330 Mon Sep 17 00:00:00 2001
> > +From: Alexander Kanavin <alex.kanavin@gmail.com>
> > +Date: Tue, 12 Feb 2019 12:04:52 +0100
> > +Subject: [PATCH] Makefile.am: explicitly link with libdrm
> > +
> > +Otherwise, a failure happens with gold linker:
> > +
> > +../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
> > +
> > +https://errors.yoctoproject.org/Errors/Details/222046/
> > +
> > +Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/153]
> > +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > +---
> > + src/Makefile.am | 1 +
> > + 1 file changed, 1 insertion(+)
> > +
> > +diff --git a/src/Makefile.am b/src/Makefile.am
> > +index 9a0a44e..9b668c8 100644
> > +--- a/src/Makefile.am
> > ++++ b/src/Makefile.am
> > +@@ -1,5 +1,6 @@
> > + SUBDIRS := gallium/auxiliary
> > + AM_LDFLAGS = -lm \
> > ++      $(LIBDRM_LIBS) \
> > +       $(GBM_LIBS) \
> > +       $(EPOXY_LIBS) \
> > +       $(X11_LIBS) \
> > +--
> > +2.17.1
> > +
> > diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> > new file mode 100644
> > index 00000000000..2b4ffa932de
> > --- /dev/null
> > +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> > @@ -0,0 +1,38 @@
> > +From 05c5c5f43fbffb3317bd9da27d414890d2ef493c Mon Sep 17 00:00:00 2001
> > +From: Alexander Kanavin <alex.kanavin@gmail.com>
> > +Date: Fri, 18 Jan 2019 13:47:23 +0100
> > +Subject: [PATCH] vtest: add missing includes
> > +
> > +This fixes build failures with musl C library
> > +
> > +Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/125]
> > +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > +---
> > + vtest/util.c         | 1 +
> > + vtest/vtest_server.c | 1 +
> > + 2 files changed, 2 insertions(+)
> > +
> > +diff --git a/vtest/util.c b/vtest/util.c
> > +index 0d3c78f..c605253 100644
> > +--- a/vtest/util.c
> > ++++ b/vtest/util.c
> > +@@ -26,6 +26,7 @@
> > + #include <stdio.h>
> > + #include <string.h>
> > + #include <unistd.h>
> > ++#include <sys/select.h>
> > +
> > + int vtest_wait_for_fd_read(int fd)
> > + {
> > +diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c
> > +index bc6c95f..010721f 100644
> > +--- a/vtest/vtest_server.c
> > ++++ b/vtest/vtest_server.c
> > +@@ -31,6 +31,7 @@
> > + #include <netinet/in.h>
> > + #include <sys/un.h>
> > + #include <fcntl.h>
> > ++#include <string.h>
> > +
> > + #include "util.h"
> > + #include "vtest.h"
> > diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> > new file mode 100644
> > index 00000000000..500ed4f2d8b
> > --- /dev/null
> > +++ b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> > @@ -0,0 +1,19 @@
> > +SUMMARY = "VirGL virtual OpenGL renderer"
> > +HOMEPAGE = "https://virgil3d.github.io/"
> > +
> > +LICENSE = "MIT"
> > +LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
> > +
> > +DEPENDS = "libdrm mesa libepoxy"
> > +SRCREV = "402c228861c9893f64cffbbcb4cb23044b8c721c"
> > +SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
> > +           file://0001-vtest-add-missing-includes.patch \
> > +           file://0001-Makefile.am-explicitly-link-with-libdrm.patch \
> > +           "
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +inherit autotools pkgconfig
> > +
> > +BBCLASSEXTEND = "native nativesdk"
> > +
> > --
> > 2.17.1
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-22 19:11     ` Alexander Kanavin
@ 2019-02-23 17:56       ` Khem Raj
  2019-02-23 18:07         ` Richard Purdie
  2019-02-23 22:30       ` Adrian Bunk
  1 sibling, 1 reply; 29+ messages in thread
From: Khem Raj @ 2019-02-23 17:56 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: Patches and discussions about the oe-core layer

On Fri, Feb 22, 2019 at 11:11 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> Probably this is the very first time virgl is built for mips :-)
>
> Note that it is useful only if you intend to run qemu on that
> platform, so I wonder if we could just blacklist it...
>

I would have thought world build should have caught it on AB for mips.
Which tells me it could be
musl+mips specific

> Alex
>
> On Fri, 22 Feb 2019 at 19:54, Khem Raj <raj.khem@gmail.com> wrote:
> >
> > https://errors.yoctoproject.org/Errors/Details/229902/
> >
> > mips/glibc
> >
> > On Fri, Feb 22, 2019 at 6:34 AM Alexander Kanavin
> > <alex.kanavin@gmail.com> wrote:
> > >
> > > This component enables hardware-accelerated GL inside QEMU guests.
> > > For more information, see here:
> > >
> > > https://lwn.net/Articles/767970/
> > > https://www.collabora.com/news-and-blog/blog/2018/02/12/virtualizing-gpu-access/
> > > https://www.collabora.com/news-and-blog/blog/2018/05/09/gpu-virtualization-update/
> > >
> > > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > > ---
> > >  meta/conf/distro/include/maintainers.inc      |  1 +
> > >  ...efile.am-explicitly-link-with-libdrm.patch | 31 +++++++++++++++
> > >  .../0001-vtest-add-missing-includes.patch     | 38 +++++++++++++++++++
> > >  .../virglrenderer/virglrenderer_0.7.0.bb      | 19 ++++++++++
> > >  4 files changed, 89 insertions(+)
> > >  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> > >  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> > >  create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> > >
> > > diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
> > > index 4e3fc103afc..f5e6343904b 100644
> > > --- a/meta/conf/distro/include/maintainers.inc
> > > +++ b/meta/conf/distro/include/maintainers.inc
> > > @@ -700,6 +700,7 @@ RECIPE_MAINTAINER_pn-util-macros = "Armin Kuster <akuster808@gmail.com>"
> > >  RECIPE_MAINTAINER_pn-v86d = "Alexander Kanavin <alex.kanavin@gmail.com>"
> > >  RECIPE_MAINTAINER_pn-vala = "Alexander Kanavin <alex.kanavin@gmail.com>"
> > >  RECIPE_MAINTAINER_pn-valgrind = "Alexander Kanavin <alex.kanavin@gmail.com>"
> > > +RECIPE_MAINTAINER_pn-virglrenderer = "Alexander Kanavin <alex.kanavin@gmail.com>"
> > >  RECIPE_MAINTAINER_pn-volatile-binds = "Chen Qi <Qi.Chen@windriver.com>"
> > >  RECIPE_MAINTAINER_pn-vte = "Anuj Mittal <anuj.mittal@intel.com>"
> > >  RECIPE_MAINTAINER_pn-vulkan = "Ross Burton <ross.burton@intel.com>"
> > > diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> > > new file mode 100644
> > > index 00000000000..aa8d814845e
> > > --- /dev/null
> > > +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-Makefile.am-explicitly-link-with-libdrm.patch
> > > @@ -0,0 +1,31 @@
> > > +From d61f7073b8ce159d21811b291c22b273b040c330 Mon Sep 17 00:00:00 2001
> > > +From: Alexander Kanavin <alex.kanavin@gmail.com>
> > > +Date: Tue, 12 Feb 2019 12:04:52 +0100
> > > +Subject: [PATCH] Makefile.am: explicitly link with libdrm
> > > +
> > > +Otherwise, a failure happens with gold linker:
> > > +
> > > +../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
> > > +
> > > +https://errors.yoctoproject.org/Errors/Details/222046/
> > > +
> > > +Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/153]
> > > +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > > +---
> > > + src/Makefile.am | 1 +
> > > + 1 file changed, 1 insertion(+)
> > > +
> > > +diff --git a/src/Makefile.am b/src/Makefile.am
> > > +index 9a0a44e..9b668c8 100644
> > > +--- a/src/Makefile.am
> > > ++++ b/src/Makefile.am
> > > +@@ -1,5 +1,6 @@
> > > + SUBDIRS := gallium/auxiliary
> > > + AM_LDFLAGS = -lm \
> > > ++      $(LIBDRM_LIBS) \
> > > +       $(GBM_LIBS) \
> > > +       $(EPOXY_LIBS) \
> > > +       $(X11_LIBS) \
> > > +--
> > > +2.17.1
> > > +
> > > diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> > > new file mode 100644
> > > index 00000000000..2b4ffa932de
> > > --- /dev/null
> > > +++ b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> > > @@ -0,0 +1,38 @@
> > > +From 05c5c5f43fbffb3317bd9da27d414890d2ef493c Mon Sep 17 00:00:00 2001
> > > +From: Alexander Kanavin <alex.kanavin@gmail.com>
> > > +Date: Fri, 18 Jan 2019 13:47:23 +0100
> > > +Subject: [PATCH] vtest: add missing includes
> > > +
> > > +This fixes build failures with musl C library
> > > +
> > > +Upstream-Status: Accepted [https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/125]
> > > +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > > +---
> > > + vtest/util.c         | 1 +
> > > + vtest/vtest_server.c | 1 +
> > > + 2 files changed, 2 insertions(+)
> > > +
> > > +diff --git a/vtest/util.c b/vtest/util.c
> > > +index 0d3c78f..c605253 100644
> > > +--- a/vtest/util.c
> > > ++++ b/vtest/util.c
> > > +@@ -26,6 +26,7 @@
> > > + #include <stdio.h>
> > > + #include <string.h>
> > > + #include <unistd.h>
> > > ++#include <sys/select.h>
> > > +
> > > + int vtest_wait_for_fd_read(int fd)
> > > + {
> > > +diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c
> > > +index bc6c95f..010721f 100644
> > > +--- a/vtest/vtest_server.c
> > > ++++ b/vtest/vtest_server.c
> > > +@@ -31,6 +31,7 @@
> > > + #include <netinet/in.h>
> > > + #include <sys/un.h>
> > > + #include <fcntl.h>
> > > ++#include <string.h>
> > > +
> > > + #include "util.h"
> > > + #include "vtest.h"
> > > diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> > > new file mode 100644
> > > index 00000000000..500ed4f2d8b
> > > --- /dev/null
> > > +++ b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
> > > @@ -0,0 +1,19 @@
> > > +SUMMARY = "VirGL virtual OpenGL renderer"
> > > +HOMEPAGE = "https://virgil3d.github.io/"
> > > +
> > > +LICENSE = "MIT"
> > > +LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
> > > +
> > > +DEPENDS = "libdrm mesa libepoxy"
> > > +SRCREV = "402c228861c9893f64cffbbcb4cb23044b8c721c"
> > > +SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
> > > +           file://0001-vtest-add-missing-includes.patch \
> > > +           file://0001-Makefile.am-explicitly-link-with-libdrm.patch \
> > > +           "
> > > +
> > > +S = "${WORKDIR}/git"
> > > +
> > > +inherit autotools pkgconfig
> > > +
> > > +BBCLASSEXTEND = "native nativesdk"
> > > +
> > > --
> > > 2.17.1
> > >
> > > --
> > > _______________________________________________
> > > Openembedded-core mailing list
> > > Openembedded-core@lists.openembedded.org
> > > http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-23 17:56       ` Khem Raj
@ 2019-02-23 18:07         ` Richard Purdie
  2019-02-23 19:57           ` Khem Raj
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2019-02-23 18:07 UTC (permalink / raw)
  To: Khem Raj, Alexander Kanavin
  Cc: Patches and discussions about the oe-core layer

On Sat, 2019-02-23 at 09:56 -0800, Khem Raj wrote:
> On Fri, Feb 22, 2019 at 11:11 AM Alexander Kanavin
> <alex.kanavin@gmail.com> wrote:
> > Probably this is the very first time virgl is built for mips :-)
> > 
> > Note that it is useful only if you intend to run qemu on that
> > platform, so I wonder if we could just blacklist it...
> > 
> 
> I would have thought world build should have caught it on AB for
> mips.
> Which tells me it could be
> musl+mips specific

The AB does not run world builds for everything. It does them for musl+
qemux86, musl+qemux86-64, qemux86, qemux86-lsb and no-x11 if I recall
correctly.

Cheers,

Richard



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-23 18:07         ` Richard Purdie
@ 2019-02-23 19:57           ` Khem Raj
  2019-02-23 22:15             ` Richard Purdie
  0 siblings, 1 reply; 29+ messages in thread
From: Khem Raj @ 2019-02-23 19:57 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Patches and discussions about the oe-core layer

On Sat, Feb 23, 2019 at 10:07 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Sat, 2019-02-23 at 09:56 -0800, Khem Raj wrote:
> > On Fri, Feb 22, 2019 at 11:11 AM Alexander Kanavin
> > <alex.kanavin@gmail.com> wrote:
> > > Probably this is the very first time virgl is built for mips :-)
> > >
> > > Note that it is useful only if you intend to run qemu on that
> > > platform, so I wonder if we could just blacklist it...
> > >
> >
> > I would have thought world build should have caught it on AB for
> > mips.
> > Which tells me it could be
> > musl+mips specific
>
> The AB does not run world builds for everything. It does them for musl+
> qemux86, musl+qemux86-64, qemux86, qemux86-lsb and no-x11 if I recall
> correctly.

Thats right, I meant to say mips/glibc world builds, I think they are
run regularly
and should have caught it if it was mips specific and musl builds
should have caught it
if it was musl specific, so its probably a combination musl+mips which
causes this

>
> Cheers,
>
> Richard
>


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-23 19:57           ` Khem Raj
@ 2019-02-23 22:15             ` Richard Purdie
  0 siblings, 0 replies; 29+ messages in thread
From: Richard Purdie @ 2019-02-23 22:15 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On Sat, 2019-02-23 at 11:57 -0800, Khem Raj wrote:
> On Sat, Feb 23, 2019 at 10:07 AM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > On Sat, 2019-02-23 at 09:56 -0800, Khem Raj wrote:
> > > On Fri, Feb 22, 2019 at 11:11 AM Alexander Kanavin
> > > <alex.kanavin@gmail.com> wrote:
> > > > Probably this is the very first time virgl is built for mips :-
> > > > )
> > > > 
> > > > Note that it is useful only if you intend to run qemu on that
> > > > platform, so I wonder if we could just blacklist it...
> > > > 
> > > 
> > > I would have thought world build should have caught it on AB for
> > > mips.
> > > Which tells me it could be
> > > musl+mips specific
> > 
> > The AB does not run world builds for everything. It does them for
> > musl+
> > qemux86, musl+qemux86-64, qemux86, qemux86-lsb and no-x11 if I
> > recall
> > correctly.
> 
> Thats right, I meant to say mips/glibc world builds, I think they are
> run regularly and should have caught it if it was mips specific and
> musl builds should have caught it if it was musl specific, so its
> probably a combination musl+mips which causes this

My list above doesn't include mips world, I don't think we test that.
We come close with some of our big images but I don't think we test
world.

Cheers,

Richard



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-22 19:11     ` Alexander Kanavin
  2019-02-23 17:56       ` Khem Raj
@ 2019-02-23 22:30       ` Adrian Bunk
  2019-02-24 13:37         ` Alexander Kanavin
  1 sibling, 1 reply; 29+ messages in thread
From: Adrian Bunk @ 2019-02-23 22:30 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: Patches and discussions about the oe-core layer

On Fri, Feb 22, 2019 at 08:11:27PM +0100, Alexander Kanavin wrote:
> Probably this is the very first time virgl is built for mips :-)
>...

Builds fine in Debian:
https://buildd.debian.org/status/package.php?p=virglrenderer

> Alex

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 01/12] virglrenderer: add a recipe
  2019-02-23 22:30       ` Adrian Bunk
@ 2019-02-24 13:37         ` Alexander Kanavin
  0 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-24 13:37 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Patches and discussions about the oe-core layer

On Sat, 23 Feb 2019 at 23:30, Adrian Bunk <bunk@stusta.de> wrote:
> > Probably this is the very first time virgl is built for mips :-)
> >...
>
> Builds fine in Debian:
> https://buildd.debian.org/status/package.php?p=virglrenderer

They don't apply special patches either:
https://sources.debian.org/patches/virglrenderer/

Anyway, building it for mips is an academic exercise. There is no use case.

Alex


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 00/12] Enable accelerated OpenGL in qemu
  2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
                   ` (11 preceding siblings ...)
  2019-02-22 14:33 ` [PATCH 12/12] selftest: add tests for virgl GL acceleration Alexander Kanavin
@ 2019-02-25  9:47 ` Richard Purdie
  2019-02-25 11:36   ` Alexander Kanavin
  12 siblings, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2019-02-25  9:47 UTC (permalink / raw)
  To: Alexander Kanavin, openembedded-core

On Fri, 2019-02-22 at 15:33 +0100, Alexander Kanavin wrote:
> V2 changes: addressed feedback from the first review round
> V3 changes:
> - better fix for missing qemu X11 include, as discussed with upstream
> - maintainers.inc entry for virglrenderer
> - egl-headless support (see below for details)
> - improvements to kmscube recipe
> - fix to vte-native to allow building it with gcc 4.8
> V4 changes
> - address failures uncovered by yocto autobuilder
> V5 changes
> - remove patches that have been merged to master
> - replace BBCLASSEXTEND_remove with PREFERRED_PROVIDER for mesa
> recipe variants
> V6 changes
> - again rebase to master
> - tweak oe-selftest to remove unnecessary re-builds of qemu-native
> V7 changes
> - rename virglrender_git.bb to virglrendender_0.7.0.bb
> - update the status of virglrenderer patches
> - further clarify the PACKAGECONFIG settings for qemu

There is a further problem somewhere. I ran more tests over the
weekend and fixed missing libEGL on ubuntu1604 for example. The 
debian8 worker is failing consistently:

https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/91

The log output is useless (which is a separate concern). When I try and
launch qemu manually I get the output below:

pokybuild@debian8-ty-1:~/yocto-worker/oe-selftest-debian/build$
DISPLAY=:1 /home/pokybuild/yocto-worker/oe-selftest-
debian/build/build/tmp/work/x86_64-linux/qemu-helper-native/1.0-
r1/recipe-sysroot-native/usr/bin/qemu-system-x86_64 -device virtio-net-
pci,netdev=net0,mac=52:54:00:12:34:02 -netdev
tap,id=net0,ifname=tap0,script=no,downscript=no -drive
file=/home/pokybuild/yocto-worker/oe-selftest-
debian/build/build/tmp/deploy/images/qemux86-64/core-image-minimal-
qemux86-64.ext4,if=virtio,format=raw -vga vmware -show-cursor -usb
-device usb-tablet -object rng-random,filename=/dev/urandom,id=rng0
-device virtio-rng-pci,rng=rng0  -vga virtio -display gtk,gl=on  -cpu
core2duo -enable-kvm -m 256 -serial tcp:127.0.0.1:51379  -serial
tcp:127.0.0.1:34855 -pidfile pidfile_9641 -snapshot -kernel
/home/pokybuild/yocto-worker/oe-selftest-
debian/build/build/tmp/deploy/images/qemux86-64/bzImage
--4.18.27+git0+9e348b6f9d_62f0a3acff-r0.2-qemux86-64-20190223080225.bin 
-append 'root=/dev/vda rw highres=off  mem=256M
ip=192.168.7.2::192.168.7.1:255.255.255.0 vga=0
uvesafb.mode_option=640x480-32 oprofile.timer=1 uvesafb.task_timeout=-1 
console=tty1 console=ttyS0,115200n8 printk.time=1'
libEGL warning: GLX/DRI2 is not supported

** (qemu-system-x86_64:10289): WARNING **: 09:43:00.199: Unknown X11
keycode mapping '<null>'.
Please report to qemu-devel@nongnu.org
including the following information:

  - Operating system
  - X11 Server
  - xprop -root
  - xdpyinfo

qemu-system-x86_64: -serial tcp:127.0.0.1:51379: Failed to connect
socket: Connection refused
qemu-system-x86_64: -serial tcp:127.0.0.1:51379: could not connect
serial device to character backend 'tcp:127.0.0.1:51379'

Any ideas why this works everywhere else but not on debian8?

Cheers,

Richard



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
  2019-02-22 14:33 ` [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds Alexander Kanavin
@ 2019-02-25 11:02   ` Richard Purdie
  2019-02-25 12:52     ` Alexander Kanavin
  0 siblings, 1 reply; 29+ messages in thread
From: Richard Purdie @ 2019-02-25 11:02 UTC (permalink / raw)
  To: Alexander Kanavin, openembedded-core

On Fri, 2019-02-22 at 15:33 +0100, Alexander Kanavin wrote:
> Except for ming32/darwin, which do not support them.
> 
> Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> ---
>  meta/recipes-devtools/qemu/qemu.inc | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-
> devtools/qemu/qemu.inc
> index c127434b020..95e9e0ede77 100644
> --- a/meta/recipes-devtools/qemu/qemu.inc
> +++ b/meta/recipes-devtools/qemu/qemu.inc
> @@ -74,15 +74,15 @@ PACKAGECONFIG ??= " \
>      fdt sdl kvm \
>      ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
>  "
> -PACKAGECONFIG_class-native ??= "fdt alsa kvm"
> -PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
> +PACKAGECONFIG_class-native ??= "fdt alsa kvm virglrenderer glx"
> +PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm virglrenderer glx"
>  
>  # Handle distros such as CentOS 5 32-bit that do not have kvm
> support
>  PACKAGECONFIG_class-native_remove = "${@'kvm' if not
> os.path.exists('/usr/include/linux/kvm.h') else ''}"
>  
> -# Disable kvm on targets that do not support it
> -PACKAGECONFIG_remove_darwin = "kvm"
> -PACKAGECONFIG_remove_mingw32 = "kvm"
> +# Disable kvm/virgl/mesa on targets that do not support it
> +PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+"
> +PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"

Sorry, I just spotted this. Please don't use _remove in OE-Core. Can we
rearrange this so we don't need to use remove?

I appreciate there are other users that have crept in but I'd like to
see them gone too...

Cheers,

Richard




^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 00/12] Enable accelerated OpenGL in qemu
  2019-02-25  9:47 ` [PATCH 00/12] Enable accelerated OpenGL in qemu Richard Purdie
@ 2019-02-25 11:36   ` Alexander Kanavin
  0 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-25 11:36 UTC (permalink / raw)
  To: Richard Purdie; +Cc: OE-core

On Mon, 25 Feb 2019 at 10:47, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
> libEGL warning: GLX/DRI2 is not supported

As a guess: Debian 8 has a particularly old version of mesa on the host:
https://packages.debian.org/source/jessie/mesa

I would start by installing a more recent one from jessie-backports repo:
https://packages.debian.org/source/jessie-backports/mesa

I also have to mention that Debian 8 is no longer in full support, but
in the 'LTS phase', which is described as:
'Debian LTS will not be handled by the Debian security team, but by a
separate group of volunteers and companies interested in making it a
success. '
https://wiki.debian.org/LTS/

Should we decommission the Debian 8 builders?

Alex


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
  2019-02-25 11:02   ` Richard Purdie
@ 2019-02-25 12:52     ` Alexander Kanavin
  2019-02-25 15:08       ` Khem Raj
  2019-02-25 15:29       ` Joshua Watt
  0 siblings, 2 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-25 12:52 UTC (permalink / raw)
  To: Richard Purdie; +Cc: OE-core

On Mon, 25 Feb 2019 at 12:02, Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Fri, 2019-02-22 at 15:33 +0100, Alexander Kanavin wrote:
> > Except for ming32/darwin, which do not support them.
> >
> > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > ---
> >  meta/recipes-devtools/qemu/qemu.inc | 10 +++++-----
> >  1 file changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-
> > devtools/qemu/qemu.inc
> > index c127434b020..95e9e0ede77 100644
> > --- a/meta/recipes-devtools/qemu/qemu.inc
> > +++ b/meta/recipes-devtools/qemu/qemu.inc
> > @@ -74,15 +74,15 @@ PACKAGECONFIG ??= " \
> >      fdt sdl kvm \
> >      ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
> >  "
> > -PACKAGECONFIG_class-native ??= "fdt alsa kvm"
> > -PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
> > +PACKAGECONFIG_class-native ??= "fdt alsa kvm virglrenderer glx"
> > +PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm virglrenderer glx"
> >
> >  # Handle distros such as CentOS 5 32-bit that do not have kvm
> > support
> >  PACKAGECONFIG_class-native_remove = "${@'kvm' if not
> > os.path.exists('/usr/include/linux/kvm.h') else ''}"
> >
> > -# Disable kvm on targets that do not support it
> > -PACKAGECONFIG_remove_darwin = "kvm"
> > -PACKAGECONFIG_remove_mingw32 = "kvm"
> > +# Disable kvm/virgl/mesa on targets that do not support it
> > +PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+"
> > +PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"
>
> Sorry, I just spotted this. Please don't use _remove in OE-Core. Can we
> rearrange this so we don't need to use remove?
>
> I appreciate there are other users that have crept in but I'd like to
> see them gone too...

I'm actually unsure how to override the
PACKAGECONFIG_append_pn-qemu-native = " gtk+"
set in local.conf without using _remove.

(we do not support gtk+ on mingw, and I guess darwin too).

We can rearrange this, enable/not enable gtk+ directly in the recipe,
and drop the qemu related lines from local.conf altogether, if you're
okay with that.

Alex


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
  2019-02-25 12:52     ` Alexander Kanavin
@ 2019-02-25 15:08       ` Khem Raj
  2019-02-25 15:29       ` Joshua Watt
  1 sibling, 0 replies; 29+ messages in thread
From: Khem Raj @ 2019-02-25 15:08 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: OE-core

On Mon, Feb 25, 2019 at 4:52 AM Alexander Kanavin
<alex.kanavin@gmail.com> wrote:
>
> On Mon, 25 Feb 2019 at 12:02, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> >
> > On Fri, 2019-02-22 at 15:33 +0100, Alexander Kanavin wrote:
> > > Except for ming32/darwin, which do not support them.
> > >
> > > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > > ---
> > >  meta/recipes-devtools/qemu/qemu.inc | 10 +++++-----
> > >  1 file changed, 5 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-
> > > devtools/qemu/qemu.inc
> > > index c127434b020..95e9e0ede77 100644
> > > --- a/meta/recipes-devtools/qemu/qemu.inc
> > > +++ b/meta/recipes-devtools/qemu/qemu.inc
> > > @@ -74,15 +74,15 @@ PACKAGECONFIG ??= " \
> > >      fdt sdl kvm \
> > >      ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
> > >  "
> > > -PACKAGECONFIG_class-native ??= "fdt alsa kvm"
> > > -PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
> > > +PACKAGECONFIG_class-native ??= "fdt alsa kvm virglrenderer glx"
> > > +PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm virglrenderer glx"
> > >
> > >  # Handle distros such as CentOS 5 32-bit that do not have kvm
> > > support
> > >  PACKAGECONFIG_class-native_remove = "${@'kvm' if not
> > > os.path.exists('/usr/include/linux/kvm.h') else ''}"
> > >
> > > -# Disable kvm on targets that do not support it
> > > -PACKAGECONFIG_remove_darwin = "kvm"
> > > -PACKAGECONFIG_remove_mingw32 = "kvm"
> > > +# Disable kvm/virgl/mesa on targets that do not support it
> > > +PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+"
> > > +PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"
> >
> > Sorry, I just spotted this. Please don't use _remove in OE-Core. Can we
> > rearrange this so we don't need to use remove?
> >
> > I appreciate there are other users that have crept in but I'd like to
> > see them gone too...
>
> I'm actually unsure how to override the
> PACKAGECONFIG_append_pn-qemu-native = " gtk+"
> set in local.conf without using _remove.
>
> (we do not support gtk+ on mingw, and I guess darwin too).
>

iirc there are overrides for mingw which could be used in local.conf
to narrow this packageconfig setting

> We can rearrange this, enable/not enable gtk+ directly in the recipe,
> and drop the qemu related lines from local.conf altogether, if you're
> okay with that.
>
> Alex
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
  2019-02-25 12:52     ` Alexander Kanavin
  2019-02-25 15:08       ` Khem Raj
@ 2019-02-25 15:29       ` Joshua Watt
  2019-02-25 15:31         ` Richard Purdie
  1 sibling, 1 reply; 29+ messages in thread
From: Joshua Watt @ 2019-02-25 15:29 UTC (permalink / raw)
  To: Alexander Kanavin, Richard Purdie; +Cc: OE-core

On Mon, 2019-02-25 at 13:52 +0100, Alexander Kanavin wrote:
> On Mon, 25 Feb 2019 at 12:02, Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > On Fri, 2019-02-22 at 15:33 +0100, Alexander Kanavin wrote:
> > > Except for ming32/darwin, which do not support them.
> > > 
> > > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > > ---
> > >  meta/recipes-devtools/qemu/qemu.inc | 10 +++++-----
> > >  1 file changed, 5 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/meta/recipes-devtools/qemu/qemu.inc b/meta/recipes-
> > > devtools/qemu/qemu.inc
> > > index c127434b020..95e9e0ede77 100644
> > > --- a/meta/recipes-devtools/qemu/qemu.inc
> > > +++ b/meta/recipes-devtools/qemu/qemu.inc
> > > @@ -74,15 +74,15 @@ PACKAGECONFIG ??= " \
> > >      fdt sdl kvm \
> > >      ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
> > >  "
> > > -PACKAGECONFIG_class-native ??= "fdt alsa kvm"
> > > -PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
> > > +PACKAGECONFIG_class-native ??= "fdt alsa kvm virglrenderer glx"
> > > +PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm virglrenderer
> > > glx"
> > > 
> > >  # Handle distros such as CentOS 5 32-bit that do not have kvm
> > > support
> > >  PACKAGECONFIG_class-native_remove = "${@'kvm' if not
> > > os.path.exists('/usr/include/linux/kvm.h') else ''}"
> > > 
> > > -# Disable kvm on targets that do not support it
> > > -PACKAGECONFIG_remove_darwin = "kvm"
> > > -PACKAGECONFIG_remove_mingw32 = "kvm"
> > > +# Disable kvm/virgl/mesa on targets that do not support it
> > > +PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+"
> > > +PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"
> > 
> > Sorry, I just spotted this. Please don't use _remove in OE-Core.
> > Can we
> > rearrange this so we don't need to use remove?
> > 
> > I appreciate there are other users that have crept in but I'd like
> > to
> > see them gone too...
> 
> I'm actually unsure how to override the
> PACKAGECONFIG_append_pn-qemu-native = " gtk+"
> set in local.conf without using _remove.

I don't think I quite follow why this is an issue, mingw is not a
supported build host AFAIK, so the "-native" means it shouldn't be a
problem (e.g. "native" should never mean "mingw")? Not sure about
darwin though.

> 
> (we do not support gtk+ on mingw, and I guess darwin too).
> 
> We can rearrange this, enable/not enable gtk+ directly in the recipe,
> and drop the qemu related lines from local.conf altogether, if you're
> okay with that.
> 
> Alex
-- 
Joshua Watt <JPEWhacker@gmail.com>



^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
  2019-02-25 15:29       ` Joshua Watt
@ 2019-02-25 15:31         ` Richard Purdie
  0 siblings, 0 replies; 29+ messages in thread
From: Richard Purdie @ 2019-02-25 15:31 UTC (permalink / raw)
  To: Joshua Watt, Alexander Kanavin; +Cc: OE-core

On Mon, 2019-02-25 at 09:29 -0600, Joshua Watt wrote:
> On Mon, 2019-02-25 at 13:52 +0100, Alexander Kanavin wrote:
> > On Mon, 25 Feb 2019 at 12:02, Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> > > On Fri, 2019-02-22 at 15:33 +0100, Alexander Kanavin wrote:
> > > > Except for ming32/darwin, which do not support them.
> > > > 
> > > > Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
> > > > ---
> > > >  meta/recipes-devtools/qemu/qemu.inc | 10 +++++-----
> > > >  1 file changed, 5 insertions(+), 5 deletions(-)
> > > > 
> > > > diff --git a/meta/recipes-devtools/qemu/qemu.inc
> > > > b/meta/recipes-
> > > > devtools/qemu/qemu.inc
> > > > index c127434b020..95e9e0ede77 100644
> > > > --- a/meta/recipes-devtools/qemu/qemu.inc
> > > > +++ b/meta/recipes-devtools/qemu/qemu.inc
> > > > @@ -74,15 +74,15 @@ PACKAGECONFIG ??= " \
> > > >      fdt sdl kvm \
> > > >      ${@bb.utils.filter('DISTRO_FEATURES', 'alsa xen', d)} \
> > > >  "
> > > > -PACKAGECONFIG_class-native ??= "fdt alsa kvm"
> > > > -PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm"
> > > > +PACKAGECONFIG_class-native ??= "fdt alsa kvm virglrenderer
> > > > glx"
> > > > +PACKAGECONFIG_class-nativesdk ??= "fdt sdl kvm virglrenderer
> > > > glx"
> > > > 
> > > >  # Handle distros such as CentOS 5 32-bit that do not have kvm
> > > > support
> > > >  PACKAGECONFIG_class-native_remove = "${@'kvm' if not
> > > > os.path.exists('/usr/include/linux/kvm.h') else ''}"
> > > > 
> > > > -# Disable kvm on targets that do not support it
> > > > -PACKAGECONFIG_remove_darwin = "kvm"
> > > > -PACKAGECONFIG_remove_mingw32 = "kvm"
> > > > +# Disable kvm/virgl/mesa on targets that do not support it
> > > > +PACKAGECONFIG_remove_darwin = "kvm virglrenderer glx gtk+"
> > > > +PACKAGECONFIG_remove_mingw32 = "kvm virglrenderer glx gtk+"
> > > 
> > > Sorry, I just spotted this. Please don't use _remove in OE-Core.
> > > Can we
> > > rearrange this so we don't need to use remove?
> > > 
> > > I appreciate there are other users that have crept in but I'd
> > > like
> > > to
> > > see them gone too...
> > 
> > I'm actually unsure how to override the
> > PACKAGECONFIG_append_pn-qemu-native = " gtk+"
> > set in local.conf without using _remove.
> 
> I don't think I quite follow why this is an issue, mingw is not a
> supported build host AFAIK, so the "-native" means it shouldn't be a
> problem (e.g. "native" should never mean "mingw")? Not sure about
> darwin though.

I wasn't quite seeing this either at first. native isn't the problem,
its the nativesdk variant...

Cheers,

Richard



^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH 00/12] Enable accelerated OpenGL in qemu
@ 2019-02-08 14:45 Alexander Kanavin
  0 siblings, 0 replies; 29+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 UTC (permalink / raw)
  To: openembedded-core

V2 changes: addressed feedback from the first review round
V3 changes:
- better fix for missing qemu X11 include, as discussed with upstream
- maintainers.inc entry for virglrenderer
- egl-headless support (see below for details)
- improvements to kmscube recipe
- fix to vte-native to allow building it with gcc 4.8
V4 changes
- address failures uncovered by yocto autobuilder
V5 changes
- remove patches that have been merged to master
- replace BBCLASSEXTEND_remove with PREFERRED_PROVIDER for mesa
recipe variants
V6 changes
- again rebase to master
- tweak oe-selftest to remove unnecessary re-builds of qemu-native

Why this? Why now?

1. I think we are heading towards a reality where some kind of working
GL is a 'must' for any kind of UI work.
2. Typically people build images and then transfer them to the NUC or
even target boards for testing - using qemu would be less awkward.
3. Current qemu configuration is basically useless here, as it only
provides a very slow software GL driver from mesa.

0. TLDR:

a) Gtk UI frontend

$ . oe-init-build-env build-virgl
$ bitbake core-image-sato-sdk
$ runqemu kvm gl
$$ run glxgears or any other GL-capable binary inside qemu

b) egl-headless

$ . oe-init-build-env build-virgl
$ bitbake core-image-sato-sdk
$ runqemu kvm egl-headless publicvnc
$ <connect with a vnc viewer to 127.0.0.1:5900>
$$ run glxgears or any other GL-capable binary inside qemu

1. For the local UI, qemu is switched over to use gtk frontend. I simply 
couldn't get SDL frontend to work properly, it only displays a blank black 
window or doesn't start at all. Same thing happens with qemu binaries provided 
by Fedora and opensuse (Ubuntu's qemu lacks virgl support). Seems like SDL support 
has regressed.

2. What is egl-headless?

In this variant, Qemu does not open a UI window at all. Instead, it renders
all graphics, including GL, into a memory buffer, which can be seen with
a vnc or spice client (over a TCP socket). This has the following advantages:

- no need to be physically present at the host machine, output (including GL bits!) 
can be seen remotely
- no need for the host machine to run an X session

3. While the components are built against the most minimum necessary 
mesa-native set (gbm, egl, dri with no drivers), libepoxy loads and uses the 
host GL implementation (through a chrpath hack). This is both to save build 
times, and because the host is likely to have a set of drivers more 
appropriate for the physical machine (e.g. proprietary nvidia stack, 
although I didn't test that).

4. I tested this with
- glamor X server
- weston compositor with drm backend (build core-image-weston, then edit 
  weston.ini in the image to use drm backed instead of fbdev).
- kmscube
- glxgears
- https://www.geeks3d.com/gputest/

The latter two show FPS that is similar to running them directly on the host.

5. Some things I am not sure about:

 - how much of a 'default' should this be for running qemu. It works for me, 
but other people might find it less stable compared to the existing 
sdl-vmware-swrast setup.

- what other tests and demos could be run

- how could this be tested on the autobuilder. I wrote two oe-selftests for 
this (gtk, egl-headless), but one of them does require an X session, and both 
require ability to create opengl contexts on the host.

The following changes since commit 29099c8a49bf9d35514bbc1e77657655598a80cc:

  maintainers.inc: replace Changhyeok Bae's @lge email address with a personal one (2019-02-08 10:57:19 +0000)

are available in the Git repository at:

  git://git.yoctoproject.org/poky-contrib akanavin/virgl-gtk
  http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/virgl-gtk

Alexander Kanavin (12):
  virglrenderer: add a recipe
  qemu: enable virglrenderer and glx options for native/nativesdk builds
  local.conf.sample: adjust the qemu config to enable gtk+ instead of
    sdl
  qemu: build target variant with gtk+, and nativesdk variant without
    sdl
  qemu: remove support for building against host sdl
  qemu: add a gettext-native dependency to gtk option
  qemu: add a patch to avoid a missing definition error
  qemu: add environment variable wrappers to make qemu look good with
    gtk frontend
  qemu: add a backported patch to fix egl-headless support
  runqemu: add options for enabling virgl GL acceleration
  runqemu: do not check for GL libraries
  selftest: add tests for virgl GL acceleration

 meta-poky/conf/local.conf.sample              |  9 +--
 meta-selftest/lib/oeqa/runtime/cases/virgl.py | 28 ++++++++
 meta/conf/distro/include/maintainers.inc      |  1 +
 meta/lib/oeqa/selftest/cases/runtime_test.py  | 52 +++++++++++++++
 meta/recipes-devtools/qemu/qemu.inc           | 41 +++++++-----
 .../qemu/0001-Add-a-missing-X11-include.patch | 65 +++++++++++++++++++
 ...-egl-headless-add-egl_create_context.patch | 50 ++++++++++++++
 ...x-libcap-header-issue-on-some-distro.patch |  2 +-
 ...-messages-when-qemi_cpu_kick_thread-.patch |  2 +-
 meta/recipes-devtools/qemu/qemu_3.1.0.bb      |  2 +
 .../0001-vtest-add-missing-includes.patch     | 38 +++++++++++
 .../virglrenderer/virglrenderer_git.bb        | 19 ++++++
 scripts/runqemu                               | 58 +++++++----------
 13 files changed, 309 insertions(+), 58 deletions(-)
 create mode 100644 meta-selftest/lib/oeqa/runtime/cases/virgl.py
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-Add-a-missing-X11-include.patch
 create mode 100644 meta/recipes-devtools/qemu/qemu/0001-egl-headless-add-egl_create_context.patch
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
 create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_git.bb

-- 
2.17.1



^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2019-02-25 15:31 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-22 14:33 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
2019-02-22 14:33 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
2019-02-22 18:54   ` Khem Raj
2019-02-22 19:11     ` Alexander Kanavin
2019-02-23 17:56       ` Khem Raj
2019-02-23 18:07         ` Richard Purdie
2019-02-23 19:57           ` Khem Raj
2019-02-23 22:15             ` Richard Purdie
2019-02-23 22:30       ` Adrian Bunk
2019-02-24 13:37         ` Alexander Kanavin
2019-02-22 14:33 ` [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds Alexander Kanavin
2019-02-25 11:02   ` Richard Purdie
2019-02-25 12:52     ` Alexander Kanavin
2019-02-25 15:08       ` Khem Raj
2019-02-25 15:29       ` Joshua Watt
2019-02-25 15:31         ` Richard Purdie
2019-02-22 14:33 ` [PATCH 03/12] qemu: build target variant with gtk+, and nativesdk variant without sdl Alexander Kanavin
2019-02-22 14:33 ` [PATCH 04/12] local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl Alexander Kanavin
2019-02-22 14:33 ` [PATCH 05/12] qemu: remove support for building against host sdl Alexander Kanavin
2019-02-22 14:33 ` [PATCH 06/12] qemu: add a gettext-native dependency to gtk option Alexander Kanavin
2019-02-22 14:33 ` [PATCH 07/12] qemu: add a patch to avoid a missing definition error Alexander Kanavin
2019-02-22 14:33 ` [PATCH 08/12] qemu: add environment variable wrappers to make qemu look good with gtk frontend Alexander Kanavin
2019-02-22 14:33 ` [PATCH 09/12] qemu: add a backported patch to fix egl-headless support Alexander Kanavin
2019-02-22 14:33 ` [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration Alexander Kanavin
2019-02-22 14:33 ` [PATCH 11/12] runqemu: do not check for GL libraries Alexander Kanavin
2019-02-22 14:33 ` [PATCH 12/12] selftest: add tests for virgl GL acceleration Alexander Kanavin
2019-02-25  9:47 ` [PATCH 00/12] Enable accelerated OpenGL in qemu Richard Purdie
2019-02-25 11:36   ` Alexander Kanavin
  -- strict thread matches above, loose matches on Subject: below --
2019-02-08 14:45 Alexander Kanavin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.