diff mbox series

[RFC,v3,6/9] mesa-gl: drop egl/gles from default PACKAGECONFIG

Message ID 20250729-mesa-libclc-panfrost-v3-6-42559ddc93ef@cherry.de
State New
Headers show
Series mesa: lighten up target's libclc dependencies and fix panfrost support | expand

Commit Message

Quentin Schulz July 29, 2025, 9:36 a.m. UTC
From: Quentin Schulz <quentin.schulz@cherry.de>

According to the introducing commit log[1] and Dmitry's recollection[2],
the whole point of mesa-gl recipe is to provide GL library in case there
are vendor-provided GLES libraries.

Therefore, let's remove EGL and GLES default PACKAGECONFIG as if people
really need them, they likely should be using the full mesa target
recipe and not mesa-gl.

[1] https://git.yoctoproject.org/poky/commit/?id=015cb13a67c672de30f5384dab5ab4b8db305281
[2] https://lore.kernel.org/openembedded-core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/

Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
 meta/recipes-graphics/mesa/mesa-gl.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dmitry Baryshkov July 29, 2025, 11:02 a.m. UTC | #1
On Tue, Jul 29, 2025 at 11:36:27AM +0200, Quentin Schulz wrote:
> From: Quentin Schulz <quentin.schulz@cherry.de>
> 
> According to the introducing commit log[1] and Dmitry's recollection[2],
> the whole point of mesa-gl recipe is to provide GL library in case there
> are vendor-provided GLES libraries.
> 
> Therefore, let's remove EGL and GLES default PACKAGECONFIG as if people
> really need them, they likely should be using the full mesa target
> recipe and not mesa-gl.
> 
> [1] https://git.yoctoproject.org/poky/commit/?id=015cb13a67c672de30f5384dab5ab4b8db305281
> [2] https://lore.kernel.org/openembedded-core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/
> 
> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>

Please squash this into patch 1, otherwise you are fixing an error that
you've just introduced.

> ---
>  meta/recipes-graphics/mesa/mesa-gl.bb | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb
> index 865b032fb0865ad0e76c3b3690eeec3d96def921..530a0c508c6868e8867ab6e60eca692610136864 100644
> --- a/meta/recipes-graphics/mesa/mesa-gl.bb
> +++ b/meta/recipes-graphics/mesa/mesa-gl.bb
> @@ -10,7 +10,7 @@ PACKAGECONFIG = " \
>  	gallium \
>  	video-codecs \
>  	${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', d)} \
> -	${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \
> +	${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl gbm virgl', '', d)} \
>  	${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
>  "
>  
> 
> -- 
> 2.50.1
> 
>
Quentin Schulz July 29, 2025, 11:07 a.m. UTC | #2
Hi Dmitry,

On 7/29/25 1:02 PM, Dmitry Baryshkov wrote:
> On Tue, Jul 29, 2025 at 11:36:27AM +0200, Quentin Schulz wrote:
>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>
>> According to the introducing commit log[1] and Dmitry's recollection[2],
>> the whole point of mesa-gl recipe is to provide GL library in case there
>> are vendor-provided GLES libraries.
>>
>> Therefore, let's remove EGL and GLES default PACKAGECONFIG as if people
>> really need them, they likely should be using the full mesa target
>> recipe and not mesa-gl.
>>
>> [1] https://git.yoctoproject.org/poky/commit/?id=015cb13a67c672de30f5384dab5ab4b8db305281
>> [2] https://lore.kernel.org/openembedded-core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/
>>
>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> 
> Please squash this into patch 1, otherwise you are fixing an error that
> you've just introduced.
> 

I've not introduced it, it's been like this for years already, I'm just 
moving things around in patch 1.

I would argue we should have the moving and the egl/gles removal in 
separate commits because it highlights there was an issue with how we 
used to configure it. Patch 1 isn't intended to change anything in terms 
of behavior.

I have an additional question though, should we make PACKAGECONFIG 
"opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 
'', d)}" like we thought it was before patch 1 in patch 6? or is what's 
in patch 6 good enough? We can start with that and people using mesa-gl 
can trim it down further if they want?

What do you think?

Cheers,
Quentin
Dmitry Baryshkov July 29, 2025, 2:46 p.m. UTC | #3
On Tue, 29 Jul 2025 at 14:07, Quentin Schulz <quentin.schulz@cherry.de> wrote:
>
> Hi Dmitry,
>
> On 7/29/25 1:02 PM, Dmitry Baryshkov wrote:
> > On Tue, Jul 29, 2025 at 11:36:27AM +0200, Quentin Schulz wrote:
> >> From: Quentin Schulz <quentin.schulz@cherry.de>
> >>
> >> According to the introducing commit log[1] and Dmitry's recollection[2],
> >> the whole point of mesa-gl recipe is to provide GL library in case there
> >> are vendor-provided GLES libraries.
> >>
> >> Therefore, let's remove EGL and GLES default PACKAGECONFIG as if people
> >> really need them, they likely should be using the full mesa target
> >> recipe and not mesa-gl.
> >>
> >> [1] https://git.yoctoproject.org/poky/commit/?id=015cb13a67c672de30f5384dab5ab4b8db305281
> >> [2] https://lore.kernel.org/openembedded-core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/
> >>
> >> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> >> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> >
> > Please squash this into patch 1, otherwise you are fixing an error that
> > you've just introduced.
> >
>
> I've not introduced it, it's been like this for years already, I'm just
> moving things around in patch 1.

Yep... Maybe then this can be a separate commit before #1 - fix
mesa-gl PACKAGECONFIG.

>
> I would argue we should have the moving and the egl/gles removal in
> separate commits because it highlights there was an issue with how we
> used to configure it. Patch 1 isn't intended to change anything in terms
> of behavior.
>
> I have an additional question though, should we make PACKAGECONFIG
> "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11',
> '', d)}" like we thought it was before patch 1 in patch 6? or is what's
> in patch 6 good enough? We can start with that and people using mesa-gl
> can trim it down further if they want?

I'd say, replace ??= with = in patch 0. It should be fine then.

>
> What do you think?
>
> Cheers,
> Quentin
Quentin Schulz July 30, 2025, 9:20 a.m. UTC | #4
On 7/29/25 4:46 PM, Dmitry Baryshkov wrote:
> On Tue, 29 Jul 2025 at 14:07, Quentin Schulz <quentin.schulz@cherry.de> wrote:
>>
>> Hi Dmitry,
>>
>> On 7/29/25 1:02 PM, Dmitry Baryshkov wrote:
>>> On Tue, Jul 29, 2025 at 11:36:27AM +0200, Quentin Schulz wrote:
>>>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>>>
>>>> According to the introducing commit log[1] and Dmitry's recollection[2],
>>>> the whole point of mesa-gl recipe is to provide GL library in case there
>>>> are vendor-provided GLES libraries.
>>>>
>>>> Therefore, let's remove EGL and GLES default PACKAGECONFIG as if people
>>>> really need them, they likely should be using the full mesa target
>>>> recipe and not mesa-gl.
>>>>
>>>> [1] https://git.yoctoproject.org/poky/commit/?id=015cb13a67c672de30f5384dab5ab4b8db305281
>>>> [2] https://lore.kernel.org/openembedded-core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/
>>>>
>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>>>
>>> Please squash this into patch 1, otherwise you are fixing an error that
>>> you've just introduced.
>>>
>>
>> I've not introduced it, it's been like this for years already, I'm just
>> moving things around in patch 1.
> 
> Yep... Maybe then this can be a separate commit before #1 - fix
> mesa-gl PACKAGECONFIG.
> 

Actually we can do better I believe. In patch 5, I remove support for 
native and nativesdk support, so I can make :class-target the default 
without an override and remove :class-native as well.

Essentially, we wouldn't modify anything in terms of behavior until we 
remove support for native/nativesdk recipes (hence no need to actually 
fix the PACKAGECONFIG value for native/nativesdk). Does that work for you?

Would look like:
"""
commit 0656461de69559057c7c5d49f124ac2702920e0f
Author: Quentin Schulz <quentin.schulz@cherry.de>
Date:   Tue Jul 29 11:15:23 2025 +0200

     mesa-gl: make recipe target only

     According to the introducing commit log[1] and Dmitry's 
recollection[2],
     the whole point of mesa-gl recipe is to provide GL library in case 
there
     are vendor-provided GLES libraries.

     Therefore, let's make this recipe target only by removing the
     BBCLASSEXTEND variable.

     Because it is a target-only recipe, we can make class-target overrides
     the default value of the variable(s) and remove the class-native
     override.

     No intended change in behavior for the target recipe.

     [1] 
https://git.yoctoproject.org/poky/commit/?id=015cb13a67c672de30f5384dab5ab4b8db305281
     [2] 
https://lore.kernel.org/openembedded-core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/

     Suggested-by: Ross Burton <ross.burton@arm.com>
     Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
     Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>

diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb 
b/meta/recipes-graphics/mesa/mesa-gl.bb
index bdb4920572..e4e66a762d 100644
--- a/meta/recipes-graphics/mesa/mesa-gl.bb
+++ b/meta/recipes-graphics/mesa/mesa-gl.bb
@@ -6,19 +6,8 @@ PROVIDES = "virtual/libgl virtual/mesa"

  TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm"

-PACKAGECONFIG = " \
-	gallium \
-	video-codecs \
-	${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', d)} \
-	${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm 
virgl', '', d)} \
-	${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
-"
-
-PACKAGECONFIG:class-target = "opengl gallium 
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
+PACKAGECONFIG = "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 
'x11', 'x11', '', d)}"

  PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga"
  PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm intel amd nouveau 
svga"
  PACKAGECONFIG:append:i686 = " libclc gallium-llvm intel amd nouveau svga"
-PACKAGECONFIG:append:class-native = " libclc gallium-llvm amd nouveau svga"
-
-BBCLASSEXTEND = "native nativesdk"

"""

Cheers,
Quentin
Dmitry Baryshkov July 30, 2025, 5:31 p.m. UTC | #5
On 30/07/2025 12:20, Quentin Schulz wrote:
> On 7/29/25 4:46 PM, Dmitry Baryshkov wrote:
>> On Tue, 29 Jul 2025 at 14:07, Quentin Schulz 
>> <quentin.schulz@cherry.de> wrote:
>>>
>>> Hi Dmitry,
>>>
>>> On 7/29/25 1:02 PM, Dmitry Baryshkov wrote:
>>>> On Tue, Jul 29, 2025 at 11:36:27AM +0200, Quentin Schulz wrote:
>>>>> From: Quentin Schulz <quentin.schulz@cherry.de>
>>>>>
>>>>> According to the introducing commit log[1] and Dmitry's 
>>>>> recollection[2],
>>>>> the whole point of mesa-gl recipe is to provide GL library in case 
>>>>> there
>>>>> are vendor-provided GLES libraries.
>>>>>
>>>>> Therefore, let's remove EGL and GLES default PACKAGECONFIG as if 
>>>>> people
>>>>> really need them, they likely should be using the full mesa target
>>>>> recipe and not mesa-gl.
>>>>>
>>>>> [1] https://git.yoctoproject.org/poky/commit/? 
>>>>> id=015cb13a67c672de30f5384dab5ab4b8db305281
>>>>> [2] https://lore.kernel.org/openembedded- 
>>>>> core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/
>>>>>
>>>>> Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>>>> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
>>>>
>>>> Please squash this into patch 1, otherwise you are fixing an error that
>>>> you've just introduced.
>>>>
>>>
>>> I've not introduced it, it's been like this for years already, I'm just
>>> moving things around in patch 1.
>>
>> Yep... Maybe then this can be a separate commit before #1 - fix
>> mesa-gl PACKAGECONFIG.
>>
> 
> Actually we can do better I believe. In patch 5, I remove support for 
> native and nativesdk support, so I can make :class-target the default 
> without an override and remove :class-native as well.
> 
> Essentially, we wouldn't modify anything in terms of behavior until we 
> remove support for native/nativesdk recipes (hence no need to actually 
> fix the PACKAGECONFIG value for native/nativesdk). Does that work for you?
> 
> Would look like:
> """
> commit 0656461de69559057c7c5d49f124ac2702920e0f
> Author: Quentin Schulz <quentin.schulz@cherry.de>
> Date:   Tue Jul 29 11:15:23 2025 +0200
> 
>      mesa-gl: make recipe target only
> 
>      According to the introducing commit log[1] and Dmitry's 
> recollection[2],
>      the whole point of mesa-gl recipe is to provide GL library in case 
> there
>      are vendor-provided GLES libraries.
> 
>      Therefore, let's make this recipe target only by removing the
>      BBCLASSEXTEND variable.
> 
>      Because it is a target-only recipe, we can make class-target overrides
>      the default value of the variable(s) and remove the class-native
>      override.
> 
>      No intended change in behavior for the target recipe.
> 
>      [1] https://git.yoctoproject.org/poky/commit/? 
> id=015cb13a67c672de30f5384dab5ab4b8db305281
>      [2] https://lore.kernel.org/openembedded- 
> core/5ebxxyvkcur3zpef5krvyizomgdgtls4qau7s2i2mgcmvs2loy@ilcud37qk6sn/
> 
>      Suggested-by: Ross Burton <ross.burton@arm.com>
>      Suggested-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>      Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> 
> diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes- 
> graphics/mesa/mesa-gl.bb
> index bdb4920572..e4e66a762d 100644
> --- a/meta/recipes-graphics/mesa/mesa-gl.bb
> +++ b/meta/recipes-graphics/mesa/mesa-gl.bb
> @@ -6,19 +6,8 @@ PROVIDES = "virtual/libgl virtual/mesa"
> 
>   TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm"
> 
> -PACKAGECONFIG = " \
> -    gallium \
> -    video-codecs \
> -    ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', 
> d)} \
> -    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles 

I'd really prefer not to get egl / gles into mesa-gl at all. Would it be 
possible to do it other way around first drop native / nativesdk classes 
in mesa-gl, then move PACKAGECONFIG?

> gbm virgl', '', d)} \
> -    ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
> -"
> -
> -PACKAGECONFIG:class-target = "opengl gallium 
> ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}"
> +PACKAGECONFIG = "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 
> 'x11', 'x11', '', d)}"
> 
>   PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga"
>   PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm intel amd nouveau 
> svga"
>   PACKAGECONFIG:append:i686 = " libclc gallium-llvm intel amd nouveau svga"
> -PACKAGECONFIG:append:class-native = " libclc gallium-llvm amd nouveau 
> svga"
> -
> -BBCLASSEXTEND = "native nativesdk"
> 
> """
> 
> Cheers,
> Quentin
diff mbox series

Patch

diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb
index 865b032fb0865ad0e76c3b3690eeec3d96def921..530a0c508c6868e8867ab6e60eca692610136864 100644
--- a/meta/recipes-graphics/mesa/mesa-gl.bb
+++ b/meta/recipes-graphics/mesa/mesa-gl.bb
@@ -10,7 +10,7 @@  PACKAGECONFIG = " \
 	gallium \
 	video-codecs \
 	${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland glvnd', d)} \
-	${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm virgl', '', d)} \
+	${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl gbm virgl', '', d)} \
 	${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
 "