* [PATCH 01/12] virglrenderer: add a recipe
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-09 9:44 ` Martin Jansa
2019-02-08 14:45 ` [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds Alexander Kanavin
` (10 subsequent siblings)
11 siblings, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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 +
.../0001-vtest-add-missing-includes.patch | 38 +++++++++++++++++++
.../virglrenderer/virglrenderer_git.bb | 19 ++++++++++
3 files changed, 58 insertions(+)
create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_git.bb
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
index 122fdbcff4b..f7d43d20b7f 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-vtest-add-missing-includes.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
new file mode 100644
index 00000000000..b565c48ee66
--- /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: Submitted [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_git.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb
new file mode 100644
index 00000000000..93fc35feb8d
--- /dev/null
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer_git.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"
+PV = "0.7.0"
+SRCREV = "402c228861c9893f64cffbbcb4cb23044b8c721c"
+SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
+ file://0001-vtest-add-missing-includes.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
+
--
2.17.1
^ permalink raw reply related [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-08 14:45 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
@ 2019-02-09 9:44 ` Martin Jansa
2019-02-09 10:06 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Martin Jansa @ 2019-02-09 9:44 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 5069 bytes --]
On Fri, Feb 08, 2019 at 03:45:42PM +0100, Alexander Kanavin 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 +
> .../0001-vtest-add-missing-includes.patch | 38 +++++++++++++++++++
> .../virglrenderer/virglrenderer_git.bb | 19 ++++++++++
> 3 files changed, 58 insertions(+)
> create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> create mode 100644 meta/recipes-graphics/virglrenderer/virglrenderer_git.bb
>
> diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc
> index 122fdbcff4b..f7d43d20b7f 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-vtest-add-missing-includes.patch b/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-add-missing-includes.patch
> new file mode 100644
> index 00000000000..b565c48ee66
> --- /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: Submitted [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_git.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb
> new file mode 100644
> index 00000000000..93fc35feb8d
> --- /dev/null
> +++ b/meta/recipes-graphics/virglrenderer/virglrenderer_git.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"
Does it need to depend on mesa directly instead of one of virtual/*
providers?
It fails to build for targets which use different mesa, e.g. mesa-gl:
ERROR: Nothing PROVIDES 'mesa' (but /OE/build/luneos-master/webos-ports/openembedded-core/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb DEPENDS on or otherwise requires it)
mesa was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa-gl, not mesa
ERROR: Required build target 'virglrenderer' has no buildable providers.
Missing or unbuildable dependency chain was: ['virglrenderer', 'mesa']
Regards,
> +PV = "0.7.0"
> +SRCREV = "402c228861c9893f64cffbbcb4cb23044b8c721c"
> +SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
> + file://0001-vtest-add-missing-includes.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
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 201 bytes --]
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-09 9:44 ` Martin Jansa
@ 2019-02-09 10:06 ` Alexander Kanavin
2019-02-09 13:19 ` Martin Jansa
0 siblings, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-09 10:06 UTC (permalink / raw)
To: Martin Jansa; +Cc: OE-core
On Sat, 9 Feb 2019 at 10:44, Martin Jansa <martin.jansa@gmail.com> wrote:
> Does it need to depend on mesa directly instead of one of virtual/*
> providers?
>
> It fails to build for targets which use different mesa, e.g. mesa-gl:
>
> ERROR: Nothing PROVIDES 'mesa' (but /OE/build/luneos-master/webos-ports/openembedded-core/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb DEPENDS on or otherwise requires it)
> mesa was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa-gl, not mesa
> ERROR: Required build target 'virglrenderer' has no buildable providers.
> Missing or unbuildable dependency chain was: ['virglrenderer', 'mesa']
Yes, mesa-gl isn't going to work. Virgl needs the following bits (set
in mesa recipe):
PACKAGECONFIG_class-native ?= "gbm dri-native egl"
dri-native is same as dri, but without drivers to save build time.
Alex
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-09 10:06 ` Alexander Kanavin
@ 2019-02-09 13:19 ` Martin Jansa
2019-02-09 16:43 ` Alexander Kanavin
2019-02-09 17:23 ` Khem Raj
0 siblings, 2 replies; 35+ messages in thread
From: Martin Jansa @ 2019-02-09 13:19 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: OE-core
[-- Attachment #1: Type: text/plain, Size: 8411 bytes --]
On Sat, Feb 09, 2019 at 11:06:47AM +0100, Alexander Kanavin wrote:
> On Sat, 9 Feb 2019 at 10:44, Martin Jansa <martin.jansa@gmail.com> wrote:
> > Does it need to depend on mesa directly instead of one of virtual/*
> > providers?
> >
> > It fails to build for targets which use different mesa, e.g. mesa-gl:
> >
> > ERROR: Nothing PROVIDES 'mesa' (but /OE/build/luneos-master/webos-ports/openembedded-core/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb DEPENDS on or otherwise requires it)
> > mesa was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa-gl, not mesa
> > ERROR: Required build target 'virglrenderer' has no buildable providers.
> > Missing or unbuildable dependency chain was: ['virglrenderer', 'mesa']
>
> Yes, mesa-gl isn't going to work. Virgl needs the following bits (set
> in mesa recipe):
> PACKAGECONFIG_class-native ?= "gbm dri-native egl"
>
> dri-native is same as dri, but without drivers to save build time.
OK, then with mesa used in qemux86* it still fails with:
| Making all in vtest
| make[2]: Entering directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
| i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o util.o ../../git/vtest/util.c
| i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_server.o ../../git/vtest/vtest_server.c
| i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_renderer.o ../../git/vtest/vtest_renderer.c
| ../i586-webos-linux-libtool --tag=CC --mode=link i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/libvirglrenderer.la
| i586-webos-linux-libtool: link: i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o .libs/virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/.libs/libvirglrenderer.so -lm -lgbm -lepoxy -pthread
| ../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
| collect2: error: ld returned 1 exit status
| Makefile:429: recipe for target 'virgl_test_server' failed
| make[2]: *** [virgl_test_server] Error 1
| make[2]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
| Makefile:510: recipe for target 'all-recursive' failed
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build'
| Makefile:419: recipe for target 'all' failed
| make: *** [all] Error 2
| ERROR: oe_runmake failed
The fix from
http://git.openembedded.org/openembedded-core-contrib/commit/?h=jansa/qemu&id=c29d4ccfe0a5f53c49883e55c2c2bb444997b1cf
is still applicable and fixes this.
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 201 bytes --]
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-09 13:19 ` Martin Jansa
@ 2019-02-09 16:43 ` Alexander Kanavin
2019-02-09 17:09 ` Martin Jansa
2019-02-09 17:23 ` Khem Raj
1 sibling, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-09 16:43 UTC (permalink / raw)
To: Martin Jansa; +Cc: OE-core
On Sat, 9 Feb 2019 at 14:19, Martin Jansa <martin.jansa@gmail.com> wrote:
> The fix from
> http://git.openembedded.org/openembedded-core-contrib/commit/?h=jansa/qemu&id=c29d4ccfe0a5f53c49883e55c2c2bb444997b1cf
> is still applicable and fixes this.
Somehow the issue does not show up in plain poky, but the fix seems
right. Can you send it upstream via
https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests
please?
Alex
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-09 16:43 ` Alexander Kanavin
@ 2019-02-09 17:09 ` Martin Jansa
2019-02-09 17:16 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Martin Jansa @ 2019-02-09 17:09 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: OE-core
[-- Attachment #1: Type: text/plain, Size: 798 bytes --]
It was sent to upstream (somewhere) by the original author, I haven't found
it on gitlab, so I've asked original author in:
https://bugs.gentoo.org/571124#c5
Plain poky probably doesn't use gold, that's why you're not seeing it there.
On Sat, Feb 9, 2019 at 5:43 PM Alexander Kanavin <alex.kanavin@gmail.com>
wrote:
> On Sat, 9 Feb 2019 at 14:19, Martin Jansa <martin.jansa@gmail.com> wrote:
> > The fix from
> >
> http://git.openembedded.org/openembedded-core-contrib/commit/?h=jansa/qemu&id=c29d4ccfe0a5f53c49883e55c2c2bb444997b1cf
> > is still applicable and fixes this.
>
> Somehow the issue does not show up in plain poky, but the fix seems
> right. Can you send it upstream via
> https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests
> please?
>
> Alex
>
[-- Attachment #2: Type: text/html, Size: 1578 bytes --]
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-09 13:19 ` Martin Jansa
2019-02-09 16:43 ` Alexander Kanavin
@ 2019-02-09 17:23 ` Khem Raj
2019-02-11 15:24 ` Khem Raj
1 sibling, 1 reply; 35+ messages in thread
From: Khem Raj @ 2019-02-09 17:23 UTC (permalink / raw)
To: Martin Jansa; +Cc: OE-core
dump ld.bfd generated .so and see if this symbol is present
On Sat, Feb 9, 2019 at 5:20 AM Martin Jansa <martin.jansa@gmail.com> wrote:
>
> On Sat, Feb 09, 2019 at 11:06:47AM +0100, Alexander Kanavin wrote:
> > On Sat, 9 Feb 2019 at 10:44, Martin Jansa <martin.jansa@gmail.com> wrote:
> > > Does it need to depend on mesa directly instead of one of virtual/*
> > > providers?
> > >
> > > It fails to build for targets which use different mesa, e.g. mesa-gl:
> > >
> > > ERROR: Nothing PROVIDES 'mesa' (but /OE/build/luneos-master/webos-ports/openembedded-core/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb DEPENDS on or otherwise requires it)
> > > mesa was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa-gl, not mesa
> > > ERROR: Required build target 'virglrenderer' has no buildable providers.
> > > Missing or unbuildable dependency chain was: ['virglrenderer', 'mesa']
> >
> > Yes, mesa-gl isn't going to work. Virgl needs the following bits (set
> > in mesa recipe):
> > PACKAGECONFIG_class-native ?= "gbm dri-native egl"
> >
> > dri-native is same as dri, but without drivers to save build time.
>
> OK, then with mesa used in qemux86* it still fails with:
>
> | Making all in vtest
> | make[2]: Entering directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
> | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o util.o ../../git/vtest/util.c
> | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_server.o ../../git/vtest/vtest_server.c
> | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_renderer.o ../../git/vtest/vtest_renderer.c
> | ../i586-webos-linux-libtool --tag=CC --mode=link i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/libvirglrenderer.la
> | i586-webos-linux-libtool: link: i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o .libs/virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/.libs/libvirglrenderer.so -lm -lgbm -lepoxy -pthread
> | ../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
> | collect2: error: ld returned 1 exit status
> | Makefile:429: recipe for target 'virgl_test_server' failed
> | make[2]: *** [virgl_test_server] Error 1
> | make[2]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
> | Makefile:510: recipe for target 'all-recursive' failed
> | make[1]: *** [all-recursive] Error 1
> | make[1]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build'
> | Makefile:419: recipe for target 'all' failed
> | make: *** [all] Error 2
> | ERROR: oe_runmake failed
>
> The fix from
> http://git.openembedded.org/openembedded-core-contrib/commit/?h=jansa/qemu&id=c29d4ccfe0a5f53c49883e55c2c2bb444997b1cf
> is still applicable and fixes this.
> --
> Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-09 17:23 ` Khem Raj
@ 2019-02-11 15:24 ` Khem Raj
2019-02-12 11:33 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Khem Raj @ 2019-02-11 15:24 UTC (permalink / raw)
To: Martin Jansa; +Cc: OE-core
here is a build failure with -fuse-ld=gold
https://errors.yoctoproject.org/Errors/Details/222046/
On Sat, Feb 9, 2019 at 9:23 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> dump ld.bfd generated .so and see if this symbol is present
>
> On Sat, Feb 9, 2019 at 5:20 AM Martin Jansa <martin.jansa@gmail.com> wrote:
> >
> > On Sat, Feb 09, 2019 at 11:06:47AM +0100, Alexander Kanavin wrote:
> > > On Sat, 9 Feb 2019 at 10:44, Martin Jansa <martin.jansa@gmail.com> wrote:
> > > > Does it need to depend on mesa directly instead of one of virtual/*
> > > > providers?
> > > >
> > > > It fails to build for targets which use different mesa, e.g. mesa-gl:
> > > >
> > > > ERROR: Nothing PROVIDES 'mesa' (but /OE/build/luneos-master/webos-ports/openembedded-core/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb DEPENDS on or otherwise requires it)
> > > > mesa was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa-gl, not mesa
> > > > ERROR: Required build target 'virglrenderer' has no buildable providers.
> > > > Missing or unbuildable dependency chain was: ['virglrenderer', 'mesa']
> > >
> > > Yes, mesa-gl isn't going to work. Virgl needs the following bits (set
> > > in mesa recipe):
> > > PACKAGECONFIG_class-native ?= "gbm dri-native egl"
> > >
> > > dri-native is same as dri, but without drivers to save build time.
> >
> > OK, then with mesa used in qemux86* it still fails with:
> >
> > | Making all in vtest
> > | make[2]: Entering directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
> > | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o util.o ../../git/vtest/util.c
> > | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_server.o ../../git/vtest/vtest_server.c
> > | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_renderer.o ../../git/vtest/vtest_renderer.c
> > | ../i586-webos-linux-libtool --tag=CC --mode=link i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/libvirglrenderer.la
> > | i586-webos-linux-libtool: link: i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o .libs/virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/.libs/libvirglrenderer.so -lm -lgbm -lepoxy -pthread
> > | ../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
> > | collect2: error: ld returned 1 exit status
> > | Makefile:429: recipe for target 'virgl_test_server' failed
> > | make[2]: *** [virgl_test_server] Error 1
> > | make[2]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
> > | Makefile:510: recipe for target 'all-recursive' failed
> > | make[1]: *** [all-recursive] Error 1
> > | make[1]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build'
> > | Makefile:419: recipe for target 'all' failed
> > | make: *** [all] Error 2
> > | ERROR: oe_runmake failed
> >
> > The fix from
> > http://git.openembedded.org/openembedded-core-contrib/commit/?h=jansa/qemu&id=c29d4ccfe0a5f53c49883e55c2c2bb444997b1cf
> > is still applicable and fixes this.
> > --
> > Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 01/12] virglrenderer: add a recipe
2019-02-11 15:24 ` Khem Raj
@ 2019-02-12 11:33 ` Alexander Kanavin
0 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-12 11:33 UTC (permalink / raw)
To: Khem Raj; +Cc: OE-core
Anyway, I sent it upstream:
https://gitlab.freedesktop.org/virgl/virglrenderer/merge_requests/153
and added to my branch on poky-contrib.
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=akanavin/virgl-gtk
Alex
On Mon, 11 Feb 2019 at 16:24, Khem Raj <raj.khem@gmail.com> wrote:
>
> here is a build failure with -fuse-ld=gold
>
> https://errors.yoctoproject.org/Errors/Details/222046/
>
> On Sat, Feb 9, 2019 at 9:23 AM Khem Raj <raj.khem@gmail.com> wrote:
> >
> > dump ld.bfd generated .so and see if this symbol is present
> >
> > On Sat, Feb 9, 2019 at 5:20 AM Martin Jansa <martin.jansa@gmail.com> wrote:
> > >
> > > On Sat, Feb 09, 2019 at 11:06:47AM +0100, Alexander Kanavin wrote:
> > > > On Sat, 9 Feb 2019 at 10:44, Martin Jansa <martin.jansa@gmail.com> wrote:
> > > > > Does it need to depend on mesa directly instead of one of virtual/*
> > > > > providers?
> > > > >
> > > > > It fails to build for targets which use different mesa, e.g. mesa-gl:
> > > > >
> > > > > ERROR: Nothing PROVIDES 'mesa' (but /OE/build/luneos-master/webos-ports/openembedded-core/meta/recipes-graphics/virglrenderer/virglrenderer_git.bb DEPENDS on or otherwise requires it)
> > > > > mesa was skipped: PREFERRED_PROVIDER_virtual/libgl set to mesa-gl, not mesa
> > > > > ERROR: Required build target 'virglrenderer' has no buildable providers.
> > > > > Missing or unbuildable dependency chain was: ['virglrenderer', 'mesa']
> > > >
> > > > Yes, mesa-gl isn't going to work. Virgl needs the following bits (set
> > > > in mesa recipe):
> > > > PACKAGECONFIG_class-native ?= "gbm dri-native egl"
> > > >
> > > > dri-native is same as dri, but without drivers to save build time.
> > >
> > > OK, then with mesa used in qemux86* it still fails with:
> > >
> > > | Making all in vtest
> > > | make[2]: Entering directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
> > > | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o util.o ../../git/vtest/util.c
> > > | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_server.o ../../git/vtest/vtest_server.c
> > > | i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -DHAVE_CONFIG_H -I. -I../../git/vtest -I.. -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -c -o vtest_renderer.o ../../git/vtest/vtest_renderer.c
> > > | ../i586-webos-linux-libtool --tag=CC --mode=link i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/libvirglrenderer.la
> > > | i586-webos-linux-libtool: link: i586-webos-linux-gcc -m32 -march=i586 --sysroot=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot -I../../git/src/gallium/drivers/virgl -I../../git/src/gallium/include -I../../git/src/gallium/auxiliary -I../../git/src/gallium/drivers -I../../git/include -I../../git/src -I/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot/usr/include/libdrm -DMESA_EGL_NO_X11_HEADERS -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0=/usr/src/debug/virglrenderer/0.7.0-r0 -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/recipe-sysroot-native= -pipe -Wall -Wextra -Werror=implicit-function-declaration -Werror=missing-prototypes -Wmissing-prototypes -Werror=int-to-pointer-cast -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -o .libs/virgl_test_server util.o vtest_server.o vtest_renderer.o ../src/.libs/libvirglrenderer.so -lm -lgbm -lepoxy -pthread
> > > | ../src/.libs/libvirglrenderer.so: error: undefined reference to 'drmPrimeHandleToFD'
> > > | collect2: error: ld returned 1 exit status
> > > | Makefile:429: recipe for target 'virgl_test_server' failed
> > > | make[2]: *** [virgl_test_server] Error 1
> > > | make[2]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build/vtest'
> > > | Makefile:510: recipe for target 'all-recursive' failed
> > > | make[1]: *** [all-recursive] Error 1
> > > | make[1]: Leaving directory '/OE/build/luneos-master/webos-ports/tmp-glibc/work/i586-webos-linux/virglrenderer/0.7.0-r0/build'
> > > | Makefile:419: recipe for target 'all' failed
> > > | make: *** [all] Error 2
> > > | ERROR: oe_runmake failed
> > >
> > > The fix from
> > > http://git.openembedded.org/openembedded-core-contrib/commit/?h=jansa/qemu&id=c29d4ccfe0a5f53c49883e55c2c2bb444997b1cf
> > > is still applicable and fixes this.
> > > --
> > > Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
> > > --
> > > _______________________________________________
> > > Openembedded-core mailing list
> > > Openembedded-core@lists.openembedded.org
> > > http://lists.openembedded.org/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
2019-02-08 14:45 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 23:12 ` Martin Jansa
2019-02-08 14:45 ` [PATCH 03/12] local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl Alexander Kanavin
` (9 subsequent siblings)
11 siblings, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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] 35+ messages in thread
* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
2019-02-08 14:45 ` [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds Alexander Kanavin
@ 2019-02-08 23:12 ` Martin Jansa
2019-02-08 23:32 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Martin Jansa @ 2019-02-08 23:12 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 1931 bytes --]
On Fri, Feb 08, 2019 at 03:45:43PM +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"
Didn't you want to enable gtk+ here as well?
> # 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
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 201 bytes --]
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
2019-02-08 23:12 ` Martin Jansa
@ 2019-02-08 23:32 ` Alexander Kanavin
2019-02-09 9:32 ` Martin Jansa
0 siblings, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 23:32 UTC (permalink / raw)
To: Martin Jansa; +Cc: OE-core
On Sat, 9 Feb 2019 at 00:12, Martin Jansa <martin.jansa@gmail.com> wrote:
> > "
> > -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"
>
> Didn't you want to enable gtk+ here as well?
Nope; it's enabled in a separate patch in meta-poky/local.conf
template, in the same way as sdl is enabled there currently.
On the other hand... maybe we can just simplify it all, and enable gtk
directly in the recipe.
Alex
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
2019-02-08 23:32 ` Alexander Kanavin
@ 2019-02-09 9:32 ` Martin Jansa
2019-02-09 10:04 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Martin Jansa @ 2019-02-09 9:32 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: OE-core
[-- Attachment #1: Type: text/plain, Size: 1064 bytes --]
On Sat, Feb 09, 2019 at 12:32:13AM +0100, Alexander Kanavin wrote:
> On Sat, 9 Feb 2019 at 00:12, Martin Jansa <martin.jansa@gmail.com> wrote:
> > > "
> > > -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"
> >
> > Didn't you want to enable gtk+ here as well?
>
> Nope; it's enabled in a separate patch in meta-poky/local.conf
> template, in the same way as sdl is enabled there currently.
>
> On the other hand... maybe we can just simplify it all, and enable gtk
> directly in the recipe.
Does enabling virglrenderer and glx do anything useful without any UI?
If not then I guess it should be enabled directly here or all 3 enabled
only in the poky's local.conf.
I haven't tried egl-headless+spice on this patchset yet, maybe that's
the combination I'm looking for.
Regards,
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 201 bytes --]
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds
2019-02-09 9:32 ` Martin Jansa
@ 2019-02-09 10:04 ` Alexander Kanavin
0 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-09 10:04 UTC (permalink / raw)
To: Martin Jansa; +Cc: OE-core
On Sat, 9 Feb 2019 at 10:32, Martin Jansa <martin.jansa@gmail.com> wrote:
> Does enabling virglrenderer and glx do anything useful without any UI?
> If not then I guess it should be enabled directly here or all 3 enabled
> only in the poky's local.conf.
Yes, absolutely. You can instruct qemu to render to an off-screen
buffer, and access that with vnc, even across the network (and maybe
spice will work too, I didn't try :). I explained this in the cover
letter...
Alex
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH 03/12] local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
2019-02-08 14:45 ` [PATCH 01/12] virglrenderer: add a recipe Alexander Kanavin
2019-02-08 14:45 ` [PATCH 02/12] qemu: enable virglrenderer and glx options for native/nativesdk builds Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl Alexander Kanavin
` (8 subsequent siblings)
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 UTC (permalink / raw)
To: openembedded-core
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] 35+ messages in thread
* [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (2 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 03/12] local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 15:31 ` Mark Hatle
2019-02-08 14:45 ` [PATCH 05/12] qemu: remove support for building against host sdl Alexander Kanavin
` (7 subsequent siblings)
11 siblings, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 UTC (permalink / raw)
To: openembedded-core
As sdl is deprecated in favor of gtk+, it should not be the default.
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] 35+ messages in thread
* Re: [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
2019-02-08 14:45 ` [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl Alexander Kanavin
@ 2019-02-08 15:31 ` Mark Hatle
2019-02-08 15:43 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Mark Hatle @ 2019-02-08 15:31 UTC (permalink / raw)
To: Alexander Kanavin, openembedded-core
I may be nitpicking slightly, but this patch 4 and 3 should probably be
combined.. I looked at '3' and went "this looks wrong, I have no idea why"..
then saw '4' and it became clear. Since they're both tied together (same
purpose) it may make sense to combine them...
On 2/8/19 8:45 AM, Alexander Kanavin wrote:
> As sdl is deprecated in favor of gtk+, it should not be the default.
At a minimum the commit message above should be included in 3/12.
--Mark
> 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 ''}"
>
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
2019-02-08 15:31 ` Mark Hatle
@ 2019-02-08 15:43 ` Alexander Kanavin
2019-02-08 15:55 ` Mark Hatle
0 siblings, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 15:43 UTC (permalink / raw)
To: Mark Hatle; +Cc: OE-core
Patch 3 changes things in meta-poky/, and patch 4 changes things in
meta/, so they cannot be combined unfortunately. I can however swap
their order, so that there is less confusion.
Alex
On Fri, 8 Feb 2019 at 16:31, Mark Hatle <mark.hatle@windriver.com> wrote:
>
> I may be nitpicking slightly, but this patch 4 and 3 should probably be
> combined.. I looked at '3' and went "this looks wrong, I have no idea why"..
> then saw '4' and it became clear. Since they're both tied together (same
> purpose) it may make sense to combine them...
>
> On 2/8/19 8:45 AM, Alexander Kanavin wrote:
> > As sdl is deprecated in favor of gtk+, it should not be the default.
>
> At a minimum the commit message above should be included in 3/12.
>
> --Mark
>
> > 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 ''}"
> >
>
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
2019-02-08 15:43 ` Alexander Kanavin
@ 2019-02-08 15:55 ` Mark Hatle
2019-02-08 15:58 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Mark Hatle @ 2019-02-08 15:55 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: OE-core
On 2/8/19 9:43 AM, Alexander Kanavin wrote:
> Patch 3 changes things in meta-poky/, and patch 4 changes things in
> meta/, so they cannot be combined unfortunately. I can however swap
> their order, so that there is less confusion.
Swap the order and add a copy of the commit message (from 4 to 3) then. That
should lesson anyone's questions if they need to figure out why it changed in
the future.
Thanks!
--Mark
> Alex
>
> On Fri, 8 Feb 2019 at 16:31, Mark Hatle <mark.hatle@windriver.com> wrote:
>>
>> I may be nitpicking slightly, but this patch 4 and 3 should probably be
>> combined.. I looked at '3' and went "this looks wrong, I have no idea why"..
>> then saw '4' and it became clear. Since they're both tied together (same
>> purpose) it may make sense to combine them...
>>
>> On 2/8/19 8:45 AM, Alexander Kanavin wrote:
>>> As sdl is deprecated in favor of gtk+, it should not be the default.
>>
>> At a minimum the commit message above should be included in 3/12.
>>
>> --Mark
>>
>>> 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 ''}"
>>>
>>
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
2019-02-08 15:55 ` Mark Hatle
@ 2019-02-08 15:58 ` Alexander Kanavin
2019-02-12 10:20 ` Mark Hatle
0 siblings, 1 reply; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 15:58 UTC (permalink / raw)
To: Mark Hatle; +Cc: OE-core
On Fri, 8 Feb 2019 at 16:56, Mark Hatle <mark.hatle@windriver.com> wrote:
> > Patch 3 changes things in meta-poky/, and patch 4 changes things in
> > meta/, so they cannot be combined unfortunately. I can however swap
> > their order, so that there is less confusion.
>
> Swap the order and add a copy of the commit message (from 4 to 3) then. That
> should lesson anyone's questions if they need to figure out why it changed in
> the future.
Currently the commits are:
commit 341ab87cf326dc1f1d7a3b83d624cde04047f43e
Author: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu Dec 27 15:17:26 2018 +0100
local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
commit 1170d353029dfb3f1a5ed9bab567e353bd034dfa
Author: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Thu Dec 27 15:33:27 2018 +0100
qemu: build target variant with gtk+, and nativesdk variant without sdl
As sdl is deprecated in favor of gtk+, it should not be the default.
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
I'm confused, what should go where?
Alex
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
2019-02-08 15:58 ` Alexander Kanavin
@ 2019-02-12 10:20 ` Mark Hatle
2019-02-12 10:58 ` Alexander Kanavin
0 siblings, 1 reply; 35+ messages in thread
From: Mark Hatle @ 2019-02-12 10:20 UTC (permalink / raw)
To: Alexander Kanavin; +Cc: OE-core
On 2/8/19 9:58 AM, Alexander Kanavin wrote:
> On Fri, 8 Feb 2019 at 16:56, Mark Hatle <mark.hatle@windriver.com> wrote:
>>> Patch 3 changes things in meta-poky/, and patch 4 changes things in
>>> meta/, so they cannot be combined unfortunately. I can however swap
>>> their order, so that there is less confusion.
>>
>> Swap the order and add a copy of the commit message (from 4 to 3) then. That
>> should lesson anyone's questions if they need to figure out why it changed in
>> the future.
>
> Currently the commits are:
>
> commit 341ab87cf326dc1f1d7a3b83d624cde04047f43e
> Author: Alexander Kanavin <alex.kanavin@gmail.com>
> Date: Thu Dec 27 15:17:26 2018 +0100
>
> local.conf.sample: adjust the qemu config to enable gtk+ instead of sdl
Reading the above, I didn't know why you changed the qemu config to enable gtk+.
The commit below has the magic line:
'As sdl is deprecated in favor of gtk+, it should not be the default.'
Once you add that, it's clear to me why the change was made if I ever look at
the local.conf.sample (using git log or git blame).
(Sorry my reply had been delayed, I missed this earlier.)
--Mark
> Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>
> commit 1170d353029dfb3f1a5ed9bab567e353bd034dfa
> Author: Alexander Kanavin <alex.kanavin@gmail.com>
> Date: Thu Dec 27 15:33:27 2018 +0100
>
> qemu: build target variant with gtk+, and nativesdk variant without sdl
>
> As sdl is deprecated in favor of gtk+, it should not be the default.
>
> Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
>
> I'm confused, what should go where?
>
> Alex
>
^ permalink raw reply [flat|nested] 35+ messages in thread
* Re: [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl
2019-02-12 10:20 ` Mark Hatle
@ 2019-02-12 10:58 ` Alexander Kanavin
0 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-12 10:58 UTC (permalink / raw)
To: Mark Hatle; +Cc: OE-core
On Tue, 12 Feb 2019 at 11:20, Mark Hatle <mark.hatle@windriver.com> wrote:
> Reading the above, I didn't know why you changed the qemu config to enable gtk+.
>
> The commit below has the magic line:
>
> 'As sdl is deprecated in favor of gtk+, it should not be the default.'
>
> Once you add that, it's clear to me why the change was made if I ever look at
> the local.conf.sample (using git log or git blame).
>
> (Sorry my reply had been delayed, I missed this earlier.)
Thanks, I fixed this now.
Alex
^ permalink raw reply [flat|nested] 35+ messages in thread
* [PATCH 05/12] qemu: remove support for building against host sdl
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (3 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 04/12] qemu: build target variant with gtk+, and nativesdk variant without sdl Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 06/12] qemu: add a gettext-native dependency to gtk option Alexander Kanavin
` (6 subsequent siblings)
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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] 35+ messages in thread
* [PATCH 06/12] qemu: add a gettext-native dependency to gtk option
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (4 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 05/12] qemu: remove support for building against host sdl Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 07/12] qemu: add a patch to avoid a missing definition error Alexander Kanavin
` (5 subsequent siblings)
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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] 35+ messages in thread
* [PATCH 07/12] qemu: add a patch to avoid a missing definition error
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (5 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 06/12] qemu: add a gettext-native dependency to gtk option Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 08/12] qemu: add environment variable wrappers to make qemu look good with gtk frontend Alexander Kanavin
` (4 subsequent siblings)
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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 +++++++++++++++++++
| 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);
+ }
--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] 35+ messages in thread
* [PATCH 08/12] qemu: add environment variable wrappers to make qemu look good with gtk frontend
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (6 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 07/12] qemu: add a patch to avoid a missing definition error Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 09/12] qemu: add a backported patch to fix egl-headless support Alexander Kanavin
` (3 subsequent siblings)
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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] 35+ messages in thread
* [PATCH 09/12] qemu: add a backported patch to fix egl-headless support
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (7 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 08/12] qemu: add environment variable wrappers to make qemu look good with gtk frontend Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration Alexander Kanavin
` (2 subsequent siblings)
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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] 35+ messages in thread
* [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (8 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 09/12] qemu: add a backported patch to fix egl-headless support Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 11/12] runqemu: do not check for GL libraries Alexander Kanavin
2019-02-08 14:45 ` [PATCH 12/12] selftest: add tests for virgl GL acceleration Alexander Kanavin
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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 c4a0ca811d9..50888a532e8 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
@@ -433,6 +436,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] 35+ messages in thread
* [PATCH 11/12] runqemu: do not check for GL libraries
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (9 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 10/12] runqemu: add options for enabling virgl GL acceleration Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
2019-02-08 14:45 ` [PATCH 12/12] selftest: add tests for virgl GL acceleration Alexander Kanavin
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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 50888a532e8..586f8700c94 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:
@@ -1178,8 +1145,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] 35+ messages in thread
* [PATCH 12/12] selftest: add tests for virgl GL acceleration
2019-02-08 14:45 [PATCH 00/12] Enable accelerated OpenGL in qemu Alexander Kanavin
` (10 preceding siblings ...)
2019-02-08 14:45 ` [PATCH 11/12] runqemu: do not check for GL libraries Alexander Kanavin
@ 2019-02-08 14:45 ` Alexander Kanavin
11 siblings, 0 replies; 35+ messages in thread
From: Alexander Kanavin @ 2019-02-08 14:45 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] 35+ messages in thread