All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] virgl: add SDL support and enable by default
@ 2019-09-06 11:18 Alexander Kanavin
  2019-09-06 11:18 ` [PATCH 1/5] bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk from target Alexander Kanavin
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Alexander Kanavin @ 2019-09-06 11:18 UTC (permalink / raw)
  To: openembedded-core

This patchset adds two enhancements to qemu virgl support (which is
a virtualized accelerated 3D graphics support for the qemu guests):

1. SDL qemu frontend now comes with virgl fully enabled and working
(over ssh X11 forwarding as well!), so using the gtk frontend
is no longer necessary. 'oe-selftest' is adjusted to test both
frontends.

2. virgl itself is enabled by default in qemu, when 'opengl' is in
DISTRO_FEATURES. This adds a few native dependencies to qemu-system-native
(particularly, libdrm, virglrenderer and a special minimal configuration
of mesa-native). I tested the impact on build times: it is about 25-30
seconds on a 16 core machine. 'bitbake core-image-minimal' goes from
26m45 to 27m13.

Gtk qemu frontend remains disabled by default, as it adds more to the build times.

The following changes since commit f399b2d73b828f70536857e3e9189b1deb4a4143:

  poky: Use 5.2 kernel by default (2019-09-06 08:25:29 +0100)

are available in the Git repository at:

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

Alexander Kanavin (5):
  bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk
    from target
  libsdl2: enable opengl option for native/nativesdk, subject to
    'opengl' in DISTRO_FEATURES
  qemu: enable virglrenderer and glx options subject to 'opengl'
    DISTRO_FEATURE
  runqemu: add options that enable virgl with the SDL frontend
  oe-selftest: extend virgl gtk test to also check the SDL option

 meta/conf/bitbake.conf                        |  4 +--
 meta/lib/oeqa/selftest/cases/runtime_test.py  | 29 ++++++++++---------
 .../qemu/qemu-system-native_4.1.0.bb          |  4 ++-
 meta/recipes-devtools/qemu/qemu_4.1.0.bb      |  5 +++-
 meta/recipes-gnome/gtk+/gtk+3.inc             |  2 ++
 meta/recipes-graphics/cairo/cairo_1.16.0.bb   |  2 ++
 .../libepoxy/libepoxy_1.5.3.bb                |  2 --
 .../libsdl2/libsdl2_2.0.10.bb                 |  4 +--
 .../virglrenderer/virglrenderer_0.8.0.bb      |  2 --
 scripts/runqemu                               | 15 ++++++++--
 10 files changed, 43 insertions(+), 26 deletions(-)

-- 
2.17.1



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH 0/5] virgl: add SDL support and enable by default
@ 2019-09-01 20:36 Alexander Kanavin
  2019-09-01 20:36 ` [PATCH 1/5] bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk from target Alexander Kanavin
  0 siblings, 1 reply; 10+ messages in thread
From: Alexander Kanavin @ 2019-09-01 20:36 UTC (permalink / raw)
  To: openembedded-core

This patchset adds two enhancements to qemu virgl support (which is
a virtualized accelerated 3D graphics support for the qemu guests):

1. SDL qemu frontend now comes with virgl fully enabled and working
(over ssh X11 forwarding as well!), so using the gtk frontend
is no longer necessary. 'oe-selftest' is adjusted to test both
frontends.

2. virgl itself is enabled by default in qemu, when 'opengl' is in
DISTRO_FEATURES. This pulls in a few components during build (particularly,
libdrm, virglrenderer and a special minimal configuration of mesa-native).
I tested the impact on build times: it is about 25-30 seconds on a 16 core
machine. 'bitbake core-image-minimal' goes from 26m45 to 27m13.

Gtk qemu frontend remains disabled by default, as it adds more to the build times.

The following changes since commit 270bd86740a080fb56d932a5c0eb70d6ce2a2b3c:

  libepoxy: enable x11 PACKAGECONFIG for native/nativesdk (2019-09-01 17:08:18 +0200)

are available in the Git repository at:

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

Alexander Kanavin (5):
  bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk
    from target
  libsdl2: enable opengl option for native/nativesdk, subject to
    'opengl' in DISTRO_FEATURES
  qemu: enable virglrenderer and glx options subject to 'opengl'
    DISTRO_FEATURE
  runqemu: add options that enable virgl with the SDL frontend
  oe-selftest: extend virgl gtk test to also check the SDL option

 meta/conf/bitbake.conf                        |  4 +--
 meta/lib/oeqa/selftest/cases/runtime_test.py  | 29 ++++++++++---------
 .../qemu/qemu-system-native_4.1.0.bb          |  4 ++-
 meta/recipes-devtools/qemu/qemu_4.1.0.bb      |  5 +++-
 meta/recipes-gnome/gtk+/gtk+3.inc             |  2 ++
 meta/recipes-graphics/cairo/cairo_1.16.0.bb   |  2 ++
 .../libepoxy/libepoxy_1.5.3.bb                |  2 --
 .../libsdl2/libsdl2_2.0.10.bb                 |  4 +--
 .../virglrenderer/virglrenderer_0.8.0.bb      |  2 --
 scripts/runqemu                               | 15 ++++++++--
 10 files changed, 43 insertions(+), 26 deletions(-)

-- 
2.17.1



^ permalink raw reply	[flat|nested] 10+ messages in thread
* [PATCH 1/5] bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk from target
@ 2019-05-08 10:13 Alexander Kanavin
  0 siblings, 0 replies; 10+ messages in thread
From: Alexander Kanavin @ 2019-05-08 10:13 UTC (permalink / raw)
  To: openembedded-core

This will allow better control over native virgl/qemu configurations.

Adjust gtk+3/cairo native configurations to actually ignore opengl
when building for -native: we do not need it, and it would cause build
failures as only a limited subset of mesa-native is currently built.

Drop native/nativesdk overrides from virglrenderer/libepoxy recipes
as opengl feature is now correctly set for those variants.

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
 meta/conf/bitbake.conf                                     | 4 ++--
 meta/recipes-gnome/gtk+/gtk+3.inc                          | 2 ++
 meta/recipes-graphics/cairo/cairo_1.16.0.bb                | 2 ++
 meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb           | 2 --
 meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb | 2 --
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf
index 14b0764f222..66a0bf2be10 100644
--- a/meta/conf/bitbake.conf
+++ b/meta/conf/bitbake.conf
@@ -836,8 +836,8 @@ DISTRO_FEATURES_NATIVESDK ?= "x11"
 
 # Normally target distro features will not be applied to native builds:
 # Native distro features on this list will use the target feature value
-DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation"
-DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation"
+DISTRO_FEATURES_FILTER_NATIVE ?= "api-documentation opengl"
+DISTRO_FEATURES_FILTER_NATIVESDK ?= "api-documentation opengl"
 
 DISTRO_FEATURES_BACKFILL = "pulseaudio sysvinit bluez5 gobject-introspection-data ldconfig"
 MACHINE_FEATURES_BACKFILL = "rtc qemu-usermode"
diff --git a/meta/recipes-gnome/gtk+/gtk+3.inc b/meta/recipes-gnome/gtk+/gtk+3.inc
index 77b6c31536b..2f9e05b1cd4 100644
--- a/meta/recipes-gnome/gtk+/gtk+3.inc
+++ b/meta/recipes-gnome/gtk+/gtk+3.inc
@@ -47,6 +47,8 @@ do_compile_prepend() {
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl wayland x11', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'glx', '', d)}"
+PACKAGECONFIG_class-native = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
 
 PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,at-spi2-atk fontconfig libx11 libxext libxcursor libxi libxdamage libxrandr libxrender libxcomposite libxfixes"
 # this is provided by oe-core patch that removes epoxy/gl dependency from a X11 build
diff --git a/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/meta/recipes-graphics/cairo/cairo_1.16.0.bb
index c2628ae0ca0..e875180f6e6 100644
--- a/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/meta/recipes-graphics/cairo/cairo_1.16.0.bb
@@ -41,6 +41,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
+PACKAGECONFIG_class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
+PACKAGECONFIG_class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
diff --git a/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb b/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
index dd706a96063..66e8b476dcc 100644
--- a/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
+++ b/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
@@ -14,8 +14,6 @@ UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases"
 inherit meson pkgconfig distro_features_check
 
 REQUIRED_DISTRO_FEATURES = "opengl"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-REQUIRED_DISTRO_FEATURES_class-nativesdk = ""
 
 PACKAGECONFIG[egl] = "-Degl=yes, -Degl=no, virtual/egl"
 PACKAGECONFIG[x11] = "-Dglx=yes, -Dglx=no, virtual/libx11 virtual/libgl"
diff --git a/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
index 225a0b8b0c9..b1dfb85c49e 100644
--- a/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
+++ b/meta/recipes-graphics/virglrenderer/virglrenderer_0.7.0.bb
@@ -18,5 +18,3 @@ inherit autotools pkgconfig distro_features_check
 BBCLASSEXTEND = "native nativesdk"
 
 REQUIRED_DISTRO_FEATURES = "opengl"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-REQUIRED_DISTRO_FEATURES_class-nativesdk = ""
-- 
2.17.1



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

end of thread, other threads:[~2019-09-06 14:58 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-06 11:18 [PATCH 0/5] virgl: add SDL support and enable by default Alexander Kanavin
2019-09-06 11:18 ` [PATCH 1/5] bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk from target Alexander Kanavin
2019-09-06 14:26   ` Khem Raj
2019-09-06 14:57     ` Alexander Kanavin
2019-09-06 11:18 ` [PATCH 2/5] libsdl2: enable opengl option for native/nativesdk, subject to 'opengl' in DISTRO_FEATURES Alexander Kanavin
2019-09-06 11:18 ` [PATCH 3/5] qemu: enable virglrenderer and glx options subject to 'opengl' DISTRO_FEATURE Alexander Kanavin
2019-09-06 11:18 ` [PATCH 4/5] runqemu: add options that enable virgl with the SDL frontend Alexander Kanavin
2019-09-06 11:18 ` [PATCH 5/5] oe-selftest: extend virgl gtk test to also check the SDL option Alexander Kanavin
  -- strict thread matches above, loose matches on Subject: below --
2019-09-01 20:36 [PATCH 0/5] virgl: add SDL support and enable by default Alexander Kanavin
2019-09-01 20:36 ` [PATCH 1/5] bitbake.conf: propagate 'opengl' DISTRO_FEATURE to native/nativesdk from target Alexander Kanavin
2019-05-08 10:13 Alexander Kanavin

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