[4/4] libsdl2: dont mix opengl and gles backends for wayland

Message ID 20220531190620.186764-4-f_l_k@t-online.de
State New
Headers show
Series [1/4] xorg-lib-common: allow to build for wayland | expand

Commit Message

Markus Volk May 31, 2022, 7:06 p.m. UTC
This fixes "Could not initialize egl display" in libsdl2 apps for
wayland without DISTRO_FEATURE x11

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Comments

Richard Purdie May 31, 2022, 8:54 p.m. UTC | #1
On Tue, 2022-05-31 at 21:06 +0200, Markus Volk wrote:
> This fixes "Could not initialize egl display" in libsdl2 apps for
> wayland without DISTRO_FEATURE x11
> 
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> index 8519e7f732..e057b5cbbc 100644
> --- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> +++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> @@ -56,14 +56,16 @@ EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \
>  
>  # opengl packageconfig factored out to make it easy for distros
>  # and BSP layers to pick either (desktop) opengl, gles2, or no GL
> -PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
> +PACKAGECONFIG_GL ?= " \
> +    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
> +    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'gles2', '', d)} \
> +"
>  
>  PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}"
>  PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
>  PACKAGECONFIG ??= " \
>      ${PACKAGECONFIG_GL} \
> -    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
> -    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
> +    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11 wayland', d)} \
>      ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
>  "
>  PACKAGECONFIG[alsa]       = "-DSDL_ALSA=ON,-DSDL_ALSA=OFF,alsa-lib,"

If you have opengl, x11 and wayland in DISTRO_FEATURES, does that cause
an issue? It would seem to change the config?

Cheers,

Richard
Khem Raj May 31, 2022, 9:06 p.m. UTC | #2
On Tue, May 31, 2022 at 1:54 PM Richard Purdie <
richard.purdie@linuxfoundation.org> wrote:

> On Tue, 2022-05-31 at 21:06 +0200, Markus Volk wrote:
> > This fixes "Could not initialize egl display" in libsdl2 apps for
> > wayland without DISTRO_FEATURE x11
> >
> > Signed-off-by: Markus Volk <f_l_k@t-online.de>
> > ---
> >  meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 8 +++++---
> >  1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> > index 8519e7f732..e057b5cbbc 100644
> > --- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> > +++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
> > @@ -56,14 +56,16 @@ EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF
> -DSDL_ARTS=OFF \
> >
> >  # opengl packageconfig factored out to make it easy for distros
> >  # and BSP layers to pick either (desktop) opengl, gles2, or no GL
> > -PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl',
> d)}"
> > +PACKAGECONFIG_GL ?= " \
> > +    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '',
> d)} \
> > +    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'gles2',
> '', d)} \
> > +"
> >
> >  PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}"
> >  PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES',
> 'x11', d)} ${PACKAGECONFIG_GL}"
> >  PACKAGECONFIG ??= " \
> >      ${PACKAGECONFIG_GL} \
> > -    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio
> x11', d)} \
> > -    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2',
> '', d)} \
> > +    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11
> wayland', d)} \
> >      ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
> >  "
> >  PACKAGECONFIG[alsa]       = "-DSDL_ALSA=ON,-DSDL_ALSA=OFF,alsa-lib,"
>
> If you have opengl, x11 and wayland in DISTRO_FEATURES, does that cause
> an issue? It would seem to change the config?


Right I think wayland + gles + no x11 is a config of its own
It should check that

>
>
> Cheers,
>
> Richard
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#166333):
> https://lists.openembedded.org/g/openembedded-core/message/166333
> Mute This Topic: https://lists.openembedded.org/mt/91458802/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Markus Volk May 31, 2022, 9:13 p.m. UTC | #3
With x11, wayland and opengl:

-   SDL_OPENGL                  (Wanted: ON): ON
--   SDL_OPENGLES                (Wanted: ON): ON
--   SDL_VULKAN                  (Wanted: ON): ON
--   SDL_WAYLAND                 (Wanted: ON): ON
--   SDL_WAYLAND_LIBDECOR        (Wanted: ON): OFF
--   SDL_WAYLAND_LIBDECOR_SHARED (Wanted: ON): OFF
--   SDL_WAYLAND_QT_TOUCH        (Wanted: ON): ON
--   SDL_WAYLAND_SHARED          (Wanted: ON): ON
--   SDL_X11                     (Wanted: ON): ON
--   SDL_X11_SHARED              (Wanted: ON): ON


wayland and opengl:

--   SDL_OPENGL                  (Wanted: OFF): OFF
--   SDL_OPENGLES                (Wanted: ON): ON
--   SDL_VULKAN                  (Wanted: ON): ON
--   SDL_WASAPI                  (Wanted: OFF): OFF
--   SDL_WAYLAND                 (Wanted: ON): ON
--   SDL_WAYLAND_LIBDECOR        (Wanted: ON): OFF
--   SDL_WAYLAND_LIBDECOR_SHARED (Wanted: ON): OFF
--   SDL_WAYLAND_QT_TOUCH        (Wanted: ON): ON
--   SDL_WAYLAND_SHARED          (Wanted: ON): ON
--   SDL_X11                     (Wanted: OFF): OFF
--   SDL_X11_SHARED              (Wanted: OFF): OFF

x11 and opengl:

--   SDL_OPENGL                  (Wanted: ON): ON
--   SDL_OPENGLES                (Wanted: OFF): OFF
--   SDL_VULKAN                  (Wanted: ON): ON
--   SDL_WASAPI                  (Wanted: OFF): OFF
--   SDL_WAYLAND                 (Wanted: OFF): OFF
--   SDL_WAYLAND_LIBDECOR        (Wanted: OFF): OFF
--   SDL_WAYLAND_LIBDECOR_SHARED (Wanted: OFF): OFF
--   SDL_WAYLAND_QT_TOUCH        (Wanted: OFF): OFF
--   SDL_WAYLAND_SHARED          (Wanted: OFF): OFF
--   SDL_X11                     (Wanted: ON): ON
--   SDL_X11_SHARED              (Wanted: ON): ON

Looks good to me. I also had no build problems with wayland,x11 and opengl


Am 31.05.22 um 22:54 schrieb richard.purdie@linuxfoundation.org:
> On Tue, 2022-05-31 at 21:06 +0200, Markus Volk wrote:
>> This fixes "Could not initialize egl display" in libsdl2 apps for
>> wayland without DISTRO_FEATURE x11
>>
>> Signed-off-by: Markus Volk <f_l_k@t-online.de>
>> ---
>>   meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb | 8 +++++---
>>   1 file changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
>> index 8519e7f732..e057b5cbbc 100644
>> --- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
>> +++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
>> @@ -56,14 +56,16 @@ EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \
>>   
>>   # opengl packageconfig factored out to make it easy for distros
>>   # and BSP layers to pick either (desktop) opengl, gles2, or no GL
>> -PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
>> +PACKAGECONFIG_GL ?= " \
>> +    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
>> +    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'gles2', '', d)} \
>> +"
>>   
>>   PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}"
>>   PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
>>   PACKAGECONFIG ??= " \
>>       ${PACKAGECONFIG_GL} \
>> -    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
>> -    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
>> +    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11 wayland', d)} \
>>       ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
>>   "
>>   PACKAGECONFIG[alsa]       = "-DSDL_ALSA=ON,-DSDL_ALSA=OFF,alsa-lib,"
> If you have opengl, x11 and wayland in DISTRO_FEATURES, does that cause
> an issue? It would seem to change the config?
>
> Cheers,
>
> Richard

Patch

diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
index 8519e7f732..e057b5cbbc 100644
--- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
+++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.22.bb
@@ -56,14 +56,16 @@  EXTRA_OECMAKE = "-DSDL_OSS=OFF -DSDL_ESD=OFF -DSDL_ARTS=OFF \
 
 # opengl packageconfig factored out to make it easy for distros
 # and BSP layers to pick either (desktop) opengl, gles2, or no GL
-PACKAGECONFIG_GL ?= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
+PACKAGECONFIG_GL ?= " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'gles2', '', d)} \
+"
 
 PACKAGECONFIG:class-native = "x11 ${PACKAGECONFIG_GL}"
 PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} ${PACKAGECONFIG_GL}"
 PACKAGECONFIG ??= " \
     ${PACKAGECONFIG_GL} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11 wayland', d)} \
     ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
 "
 PACKAGECONFIG[alsa]       = "-DSDL_ALSA=ON,-DSDL_ALSA=OFF,alsa-lib,"