From patchwork Thu Sep 4 14:03:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69654 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D1BC0CA1017 for ; Thu, 4 Sep 2025 14:04:00 +0000 (UTC) Received: from smtp-190b.mail.infomaniak.ch (smtp-190b.mail.infomaniak.ch [185.125.25.11]) by mx.groups.io with SMTP id smtpd.web11.40121.1756994634774771212 for ; Thu, 04 Sep 2025 07:03:55 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.11, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6K3cG4zw21; Thu, 4 Sep 2025 16:03:53 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6K0G5YzjQs; Thu, 4 Sep 2025 16:03:53 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:30 +0200 Subject: [PATCH v7 01/13] mesa-gl: make mesa-gl really openGL-only MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-1-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:00 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222933 From: Quentin Schulz The ??= operator for PACKAGECONFIG doesn't actually do anything because the recipe includes mesa.inc which already sets this variable (with the = operator). This probably wasn't noticed until now because mesa-gl is likely only ever built in its target flavor which was already set correctly thanks to the :class-target override. This essentially only make mesa-gl-native and nativesdk-mesa-gl follow the same configuration as the target. Suggested-by: Dmitry Baryshkov Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index e2f03c81c4588c6257ffec2892fef7fcbe9f82bf..35d6dc854cf4dfac7a757e333e25e4ddeab10b6e 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -9,6 +9,4 @@ S = "${UNPACKDIR}/mesa-${PV}" TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" # At least one DRI rendering engine is required to build mesa. -PACKAGECONFIG ??= "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', 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)}" From patchwork Thu Sep 4 14:03:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69657 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE528CAC581 for ; Thu, 4 Sep 2025 14:04:00 +0000 (UTC) Received: from smtp-42ab.mail.infomaniak.ch (smtp-42ab.mail.infomaniak.ch [84.16.66.171]) by mx.groups.io with SMTP id smtpd.web10.40453.1756994635931440206 for ; Thu, 04 Sep 2025 07:03:56 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 84.16.66.171, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6L0VyxzsCM; Thu, 4 Sep 2025 16:03:54 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6K3VWmzmn5; Thu, 4 Sep 2025 16:03:53 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:31 +0200 Subject: [PATCH v7 02/13] mesa-gl: use bb.utils.filter to improve readability MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-2-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz , Khem Raj X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:00 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222935 From: Quentin Schulz ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" is exactly the same as ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} so use the latter to make it easier on the eyes. Suggested-by: Khem Raj Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- 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 35d6dc854cf4dfac7a757e333e25e4ddeab10b6e..e11758767f02efd38e2d7b90738424b9ec825120 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -9,4 +9,4 @@ S = "${UNPACKDIR}/mesa-${PV}" TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" # At least one DRI rendering engine is required to build mesa. -PACKAGECONFIG = "opengl gallium ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" +PACKAGECONFIG = "opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" From patchwork Thu Sep 4 14:03:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69658 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 09EFACAC582 for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-bc0b.mail.infomaniak.ch (smtp-bc0b.mail.infomaniak.ch [45.157.188.11]) by mx.groups.io with SMTP id smtpd.web11.40123.1756994636191389608 for ; Thu, 04 Sep 2025 07:03:56 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.11, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6L45MLzvkL; Thu, 4 Sep 2025 16:03:54 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6L0P53zn4v; Thu, 4 Sep 2025 16:03:54 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:32 +0200 Subject: [PATCH v7 03/13] mesa: move PACKAGECONFIG defaults to recipes MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-3-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222936 From: Quentin Schulz We're planning on reusing mesa.inc for a new mesa-tools-native recipe which will require much less in terms of PACKAGECONFIG than the actual mesa recipes. It also doesn't make a lot of sense to have a default PACKAGECONFIG in an include file inherited by multiple recipes (here mesa and mesa-gl) which is highlighted by the fact that the only other recipe that includes mesa.inc (mesa-gl) overrides PACKAGECONFIG (hence why mesa-gl only gets a partial migration of PACKAGECONFIG defaults. No intended change in behavior. Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 5 +++++ meta/recipes-graphics/mesa/mesa.bb | 12 ++++++++++++ meta/recipes-graphics/mesa/mesa.inc | 13 ------------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index e11758767f02efd38e2d7b90738424b9ec825120..d27d606875a5e143276356b9844634082c7354cb 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -10,3 +10,8 @@ TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" # At least one DRI rendering engine is required to build mesa. PACKAGECONFIG = "opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', '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" diff --git a/meta/recipes-graphics/mesa/mesa.bb b/meta/recipes-graphics/mesa/mesa.bb index 96e8aa38d61661c02d2228d825f70cf41f985382..305b18070d6a47a53f204906a16bc8d4833fd9d6 100644 --- a/meta/recipes-graphics/mesa/mesa.bb +++ b/meta/recipes-graphics/mesa/mesa.bb @@ -1,2 +1,14 @@ require ${BPN}.inc +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: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" diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index a848a2ad8c73dad945039b5374c66e221b5b9a05..387f954789c603dac767ccf18ad60acb6731d35a 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -80,22 +80,9 @@ EXTRA_OEMESON = " \ def strip_comma(s): return s.strip(',') -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)} \ -" - # skip all Rust dependencies if we are not building OpenCL" INHIBIT_DEFAULT_RUST_DEPS = "${@bb.utils.contains('PACKAGECONFIG', 'opencl', '', '1', 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" - # "gbm" requires "opengl" PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled" From patchwork Thu Sep 4 14:03:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69661 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22F9CCAC584 for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-8fad.mail.infomaniak.ch (smtp-8fad.mail.infomaniak.ch [83.166.143.173]) by mx.groups.io with SMTP id smtpd.web11.40125.1756994637148509009 for ; Thu, 04 Sep 2025 07:03:57 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 83.166.143.173, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6M0L4FzvFG; Thu, 4 Sep 2025 16:03:55 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6L3zpHzhSd; Thu, 4 Sep 2025 16:03:54 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:33 +0200 Subject: [PATCH v7 04/13] mesa: move PROVIDES out of include file MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-4-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222938 From: Quentin Schulz There currently are two recipes including mesa.inc: mesa-gl and mesa. Because mesa-gl.bb already sets PROVIDES, overriding the value it should be getting from mesa.inc, move PROVIDES from mesa.inc to mesa.bb, keeping the value in mesa-gl.bb intact. Because GLPROVIDES is not used in mesa-gl.bb, it also is only moved to mesa.bb. No intended change in behavior. Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.bb | 11 +++++++++++ meta/recipes-graphics/mesa/mesa.inc | 10 ---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa.bb b/meta/recipes-graphics/mesa/mesa.bb index 305b18070d6a47a53f204906a16bc8d4833fd9d6..51d0384ef5930f36ff2f5c20ebad2d7ad8b817a9 100644 --- a/meta/recipes-graphics/mesa/mesa.bb +++ b/meta/recipes-graphics/mesa/mesa.bb @@ -12,3 +12,14 @@ 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" + +GLPROVIDES = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \ +" +PROVIDES = " \ + ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', '', d.getVar('GLPROVIDES'), d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ + virtual/mesa \ +" diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 387f954789c603dac767ccf18ad60acb6731d35a..46fe465cd84ae9e799571d8c519a1d7933c716a6 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -40,16 +40,6 @@ do_install:append() { DEPENDS = "expat makedepend-native flex-native bison-native libxml2-native zlib chrpath-replacement-native python3-mako-native gettext-native python3-pyyaml-native" EXTRANATIVEPATH += "chrpath-native" -GLPROVIDES = " \ - ${@bb.utils.contains('PACKAGECONFIG', 'opengl', 'virtual/libgl', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'gles', 'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl', '', d)} \ -" -PROVIDES = " \ - ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', '', d.getVar('GLPROVIDES'), d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ - virtual/mesa \ - " inherit meson pkgconfig python3native gettext features_check rust From patchwork Thu Sep 4 14:03:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69659 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 14B02CAC583 for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-42ab.mail.infomaniak.ch (smtp-42ab.mail.infomaniak.ch [84.16.66.171]) by mx.groups.io with SMTP id smtpd.web11.40124.1756994636856765161 for ; Thu, 04 Sep 2025 07:03:57 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 84.16.66.171, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6M3b40zv16; Thu, 4 Sep 2025 16:03:55 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6M0CGLzk6Y; Thu, 4 Sep 2025 16:03:55 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:34 +0200 Subject: [PATCH v7 05/13] mesa: move BBCLASSEXTEND out of the include file MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-5-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222937 From: Quentin Schulz We're going to have a new mesa-tools-native recipe include mesa.inc soon. We don't need a target mesa-tools recipe for now so we'll go with a native-only recipe which this BBCLASSEXTEND prevents us to do properly, so let's move them to the recipes instead. No intended change in behavior. Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 2 ++ meta/recipes-graphics/mesa/mesa.bb | 2 ++ meta/recipes-graphics/mesa/mesa.inc | 2 -- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index d27d606875a5e143276356b9844634082c7354cb..4d71406b6dfbdd260ef61a7ab9427c70c47685f4 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -15,3 +15,5 @@ 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" diff --git a/meta/recipes-graphics/mesa/mesa.bb b/meta/recipes-graphics/mesa/mesa.bb index 51d0384ef5930f36ff2f5c20ebad2d7ad8b817a9..db5eab5fb27c6a7228f6e0fd823514352c42ad1f 100644 --- a/meta/recipes-graphics/mesa/mesa.bb +++ b/meta/recipes-graphics/mesa/mesa.bb @@ -23,3 +23,5 @@ PROVIDES = " \ ${@bb.utils.contains('PACKAGECONFIG', 'gbm', 'virtual/libgbm', '', d)} \ virtual/mesa \ " + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 46fe465cd84ae9e799571d8c519a1d7933c716a6..4c079fe0aba8125763f0a598d6e114082a8453ee 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -43,8 +43,6 @@ EXTRANATIVEPATH += "chrpath-native" inherit meson pkgconfig python3native gettext features_check rust -BBCLASSEXTEND = "native nativesdk" - ANY_OF_DISTRO_FEATURES = "opengl vulkan" PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}" From patchwork Thu Sep 4 14:03:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69664 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2C70BCAC585 for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-42a9.mail.infomaniak.ch (smtp-42a9.mail.infomaniak.ch [84.16.66.169]) by mx.groups.io with SMTP id smtpd.web10.40454.1756994637218204947 for ; Thu, 04 Sep 2025 07:03:57 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 84.16.66.169, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6M6tK4zsCN; Thu, 4 Sep 2025 16:03:55 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6M3SJtzkP9; Thu, 4 Sep 2025 16:03:55 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:35 +0200 Subject: [PATCH v7 06/13] mesa: assign S in include file MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-6-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222939 From: Ross Burton Anything including mesa.inc will have the sources extracted in ${UNPACKDIR}/mesa-${PV}. The default for S is ${UNPACKDIR}/${BP}. ${BP} is ${BPN}-${PV}. Because mesa.bb is named mesa, BPN will be mesa and thus S wasn't required for mesa.bb but only for mesa-gl.bb. This also explains why this change is fine for mesa.bb as the value of S won't have changed, the ${BPN} part is now just hardcoded to "mesa" for mesa.bb instead. No intended change in behavior. Signed-off-by: Ross Burton [added commit log and title] Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 2 -- meta/recipes-graphics/mesa/mesa.inc | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index 4d71406b6dfbdd260ef61a7ab9427c70c47685f4..7b283415dd26a4dc73713a8bed1f794b02c979a9 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -4,8 +4,6 @@ SUMMARY += " (OpenGL only, no EGL/GLES)" PROVIDES = "virtual/libgl virtual/mesa" -S = "${UNPACKDIR}/mesa-${PV}" - TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" # At least one DRI rendering engine is required to build mesa. diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 4c079fe0aba8125763f0a598d6e114082a8453ee..45499f6c421e7fb0b06ef95179168c6cb9fff1cf 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -24,6 +24,8 @@ PV = "25.2.0" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)" +S = "${UNPACKDIR}/mesa-${PV}" + #because we cannot rely on the fact that all apps will use pkgconfig, #make eglplatform.h independent of MESA_EGL_NO_X11_HEADER do_install:append() { From patchwork Thu Sep 4 14:03:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69660 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 309F4CA101F for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-1909.mail.infomaniak.ch (smtp-1909.mail.infomaniak.ch [185.125.25.9]) by mx.groups.io with SMTP id smtpd.web11.40126.1756994637744832682 for ; Thu, 04 Sep 2025 07:03:58 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.9, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6N3LwfzrlL; Thu, 4 Sep 2025 16:03:56 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6M6krpzlDb; Thu, 4 Sep 2025 16:03:55 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:36 +0200 Subject: [PATCH v7 07/13] mesa-gl: make recipe target only MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-7-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222940 From: Quentin Schulz 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. 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 Suggested-by: Dmitry Baryshkov Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 3 --- 1 file changed, 3 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index 7b283415dd26a4dc73713a8bed1f794b02c979a9..832137c8188f1253c9924e4c8410e5fae40f10fb 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -12,6 +12,3 @@ PACKAGECONFIG = "opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', '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" From patchwork Thu Sep 4 14:03:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69665 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3A9C4CAC586 for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-bc0b.mail.infomaniak.ch (smtp-bc0b.mail.infomaniak.ch [45.157.188.11]) by mx.groups.io with SMTP id smtpd.web10.40455.1756994638215383558 for ; Thu, 04 Sep 2025 07:03:58 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.11, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6N6fbnztSd; Thu, 4 Sep 2025 16:03:56 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6N3G6RzlT0; Thu, 4 Sep 2025 16:03:56 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:37 +0200 Subject: [PATCH v7 08/13] mesa: add asahi to TOOLS when selected in PACKAGECONFIG MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-8-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222941 From: Quentin Schulz Similarly to panfrost and other PACKAGECONFIG, mesa has tools for asahi. So let's build the tools whenever asked. While the tools are often built regardless of their presence in the "tools" mesa option whenever the appropriate gallium or vulkan driver is built, this allows to build the tool(s) without building the drivers which can be beneficial for native recipes where it makes little sense to build drivers. This will be useful for building asahi_clc precomp-compiler in native mesa for example which only builds if: - one enables the asahi gallium driver, or - one enables the asahi vulkan driver, or - one builds the asahi tools c.f. https://gitlab.freedesktop.org/mesa/mesa/-/blob/mesa-25.1.5/src/asahi/meson.build?ref_type=tags#L12-L17 Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.inc | 1 + 1 file changed, 1 insertion(+) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 45499f6c421e7fb0b06ef95179168c6cb9fff1cf..81b099bf6e5fe624e91e6a780f8bb55854580c2d 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -100,6 +100,7 @@ PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, # mesa development and testing tools support, per driver TOOLS = "" TOOLS_DEPS = "" +TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'asahi', ',asahi', '', d)}" TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv', ',etnaviv', '', d)}" TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',freedreno', '', d)}" TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" From patchwork Thu Sep 4 14:03:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69653 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D63F2CA1015 for ; Thu, 4 Sep 2025 14:04:00 +0000 (UTC) Received: from smtp-190b.mail.infomaniak.ch (smtp-190b.mail.infomaniak.ch [185.125.25.11]) by mx.groups.io with SMTP id smtpd.web11.40128.1756994638738514920 for ; Thu, 04 Sep 2025 07:03:59 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.11, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6P31M8zvHv; Thu, 4 Sep 2025 16:03:57 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6N6VXwzmh2; Thu, 4 Sep 2025 16:03:56 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:38 +0200 Subject: [PATCH v7 09/13] mesa: allow to disable xmlconfig support MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-9-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:00 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222942 From: Quentin Schulz From my understanding, xmlconfig is useful for "dynamic" driconf support, i.e. driconf the user specifies at runtime. According to the wiki[1], driconf is useful for OpenGL drivers. I wager we mostly don't need xmlconfig at all which may allow us to also get rid (in most cases) of the expat dependency. But that is an optimization to investigate later, so let's keep xmlconfig enabled for now as it is the default whenever the meson feature is not disabled (defaults to auto) and expat is found (currently part of DEPENDS in mesa.inc). This will be useful for mesa-tools-native which isn't meant to compile drivers and thus shouldn't try to compile driconf support and install driconf example files. Technically, xmlconfig depends on the expat meson feature (and the presence of the expat build dependency) but the feature is default auto so having expat dependency in xmlconfig PACKAGECONFIG seems enough instead of having one PACKAGECONFIG depend on another PACKAGECONFIG's presence. [1] https://dri.freedesktop.org/wiki/DriConf/ Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa-gl.bb | 2 +- meta/recipes-graphics/mesa/mesa.bb | 1 + meta/recipes-graphics/mesa/mesa.inc | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/meta/recipes-graphics/mesa/mesa-gl.bb b/meta/recipes-graphics/mesa/mesa-gl.bb index 832137c8188f1253c9924e4c8410e5fae40f10fb..3b55d2b77e55b1297a1507a86aa16e6d15944983 100644 --- a/meta/recipes-graphics/mesa/mesa-gl.bb +++ b/meta/recipes-graphics/mesa/mesa-gl.bb @@ -7,7 +7,7 @@ PROVIDES = "virtual/libgl virtual/mesa" TARGET_CFLAGS = "-I${STAGING_INCDIR}/drm" # At least one DRI rendering engine is required to build mesa. -PACKAGECONFIG = "opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" +PACKAGECONFIG = "opengl gallium ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} xmlconfig" PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga" PACKAGECONFIG:append:x86-64 = " libclc gallium-llvm intel amd nouveau svga" diff --git a/meta/recipes-graphics/mesa/mesa.bb b/meta/recipes-graphics/mesa/mesa.bb index db5eab5fb27c6a7228f6e0fd823514352c42ad1f..49e077b20cd254415c73a30040da76b5d25fd2f3 100644 --- a/meta/recipes-graphics/mesa/mesa.bb +++ b/meta/recipes-graphics/mesa/mesa.bb @@ -6,6 +6,7 @@ PACKAGECONFIG = " \ ${@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)} \ + xmlconfig \ " PACKAGECONFIG:append:x86 = " libclc gallium-llvm intel amd nouveau svga" diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 81b099bf6e5fe624e91e6a780f8bb55854580c2d..4b1c11be55f7b3f54b5244674263b83a8703bc25 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -115,6 +115,7 @@ TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ' ncurse PACKAGECONFIG[freedreno-fdperf] = ",,libconfig" PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')}, -Dtools='', ${TOOLS_DEPS}" +PACKAGECONFIG[xmlconfig] = "-Dxmlconfig=enabled, -Dxmlconfig=disabled, expat" PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false" PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd" From patchwork Thu Sep 4 14:03:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69656 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id E61BDCA101C for ; Thu, 4 Sep 2025 14:04:00 +0000 (UTC) Received: from smtp-190f.mail.infomaniak.ch (smtp-190f.mail.infomaniak.ch [185.125.25.15]) by mx.groups.io with SMTP id smtpd.web11.40129.1756994639254932473 for ; Thu, 04 Sep 2025 07:03:59 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.15, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6P6d57ztlv; Thu, 4 Sep 2025 16:03:57 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6P2shPzlT2; Thu, 4 Sep 2025 16:03:57 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:39 +0200 Subject: [PATCH v7 10/13] mesa: avoid host paths poisoning MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-10-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:00 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222943 From: Quentin Schulz At least panfrost and asahi drivers are prone to host paths poisoning due to unpatched __FILE__ macro in assert() of libcl. The compilation units for files including this file all are passed specific arguments via the cl_args meson variable which currently only contains one fmacro-prefix-map entry for relative paths. However, there are also absolute build and source paths that seem to make it to the generated files and libraries so this patches mesa to also strip those paths. Note that out of the four paths in the default DEBUG_PREFIX_MAP, only the source and build directories make it to the fmacro-prefix-map and they aren't mapped like they are when used with ffile-prefix-map in DEBUG_PREFIX_MAP as I'm not sure if it is at all possible for meson to fetch this Yocto-provided path we should be mapping to in the current mesa code base. I guess this is good enough for now. Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- ...01-meson-fix-libcl-assert-reproducibility.patch | 43 ++++++++++++++++++++++ meta/recipes-graphics/mesa/mesa.inc | 1 + 2 files changed, 44 insertions(+) diff --git a/meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch b/meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch new file mode 100644 index 0000000000000000000000000000000000000000..118b52a22714594999f9c8d38a56b47afe4e4e66 --- /dev/null +++ b/meta/recipes-graphics/mesa/files/0001-meson-fix-libcl-assert-reproducibility.patch @@ -0,0 +1,43 @@ +From b9d43acde2d2e21d321e57d632cac199e41048ef Mon Sep 17 00:00:00 2001 +From: Quentin Schulz +Date: Thu, 21 Aug 2025 17:24:08 +0200 +Subject: [PATCH] meson: fix libcl assert() reproducibility + +The current -fmacro-prefix-map only handles removal of relative paths +but we still need to handle absolute paths. + +The following path can be found in libvulkan_panfrost.so when building +with Yocto for example: +/work/build/tmp/work/cortexa76-cortexa55-crypto-poky-linux/mesa/25.2.0/sources/mesa-25.2.0/src/panfrost/libpan/../../util/bitpack_helpers.h + +These paths currently seem to only appear in the binary in strings that +start with "Shader assertion fail at " which seems to indicate there are +calls to assert() with absolute paths as well as relative paths (which +are already patched with fmacro-prefix-map). + +By stripping the global source and build root directories from the paths +with -fmacro-prefix-map, we get rid of this reproducibility issue (which +incidentally makes the build fail due to buildpaths QA issue). + +Signed-off-by: Quentin Schulz + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36927] + +Signed-off-by: Quentin Schulz +--- + meson.build | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/meson.build b/meson.build +index 9cc75f6636e..d4779905020 100644 +--- a/meson.build ++++ b/meson.build +@@ -52,6 +52,8 @@ relative_dir = fs.relative_to(meson.global_source_root(), meson.global_build_roo + + cl_args = [ + '-fmacro-prefix-map=@0@/='.format(relative_dir), ++ '-fmacro-prefix-map=@0@/='.format(meson.global_source_root()), ++ '-fmacro-prefix-map=@0@/='.format(meson.global_build_root()), + + # Set the OpenCL standard to CL 2.0, enabling everything at a frontend. + # Drivers may not actually support everything but that's ok. diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 4b1c11be55f7b3f54b5244674263b83a8703bc25..beaf99b796f117ab4b7b10bf9c9ea57d65995ddb 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -17,6 +17,7 @@ PE = "2" SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \ file://0001-freedreno-don-t-encode-build-path-into-binaries.patch \ + file://0001-meson-fix-libcl-assert-reproducibility.patch \ " SRC_URI[sha256sum] = "7c726b21c074d14d31d253d638b741422f3c0a497ce7f1b4aaaa917d10bd8d4f" From patchwork Thu Sep 4 14:03:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69655 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE471CAC580 for ; Thu, 4 Sep 2025 14:04:00 +0000 (UTC) Received: from smtp-42af.mail.infomaniak.ch (smtp-42af.mail.infomaniak.ch [84.16.66.175]) by mx.groups.io with SMTP id smtpd.web11.40130.1756994639844893879 for ; Thu, 04 Sep 2025 07:04:00 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 84.16.66.175, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6Q373NzvTj; Thu, 4 Sep 2025 16:03:58 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6P6X16zn9x; Thu, 4 Sep 2025 16:03:57 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:40 +0200 Subject: [PATCH v7 11/13] mesa: avoid host path poisoning when enabling OpenCL MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-11-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:00 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222944 From: Quentin Schulz When enabling rusticl (and the shared-llvm meson feature via the gallium-llvm PACKAGECONFIG documented dependency), the clc headers are looked on the filesystem at runtime. Unfortunately, part of the lookup path contains LLVM_LIB_DIR, a variable derived from llvm_libdir meson variable. The latter is required to figure out where the clang/llvm libraries are for the cross-compiler but the former is used when running on the target. When in a cross-compiling environment, LLVM_LIB_DIR would actually point at a non-existing path (the sysroot path on the build host) instead of the target path. This sadly triggers a buildpaths QA error in addition of being incorrect. Another option is to bundle the clc headers directly inside the binary instead of looking them up at runtime, something we can do with mesa-clc-bundle-headers meson feature. So let's do that to fix the issue and buildpaths QA error. Suggested-by: Dmitry Baryshkov Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index beaf99b796f117ab4b7b10bf9c9ea57d65995ddb..54af134c77e90938534db1b0009ec08272f271e0 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -129,7 +129,7 @@ PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled" # "opencl" also requires libclc and gallium-llvm to be present in PKGCONFIG! # Be sure to enable them both for the target and for the native build. -PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true, -Dgallium-rusticl=false, bindgen-cli-native" +PACKAGECONFIG[opencl] = "-Dgallium-rusticl=true -Dmesa-clc-bundle-headers=enabled, -Dgallium-rusticl=false, bindgen-cli-native" PACKAGECONFIG[broadcom] = "" PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native" From patchwork Thu Sep 4 14:03:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69663 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3AC7FCAC588 for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-bc09.mail.infomaniak.ch (smtp-bc09.mail.infomaniak.ch [45.157.188.9]) by mx.groups.io with SMTP id smtpd.web10.40459.1756994640354834876 for ; Thu, 04 Sep 2025 07:04:00 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.9, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (smtp-4-0000.mail.infomaniak.ch [10.7.10.107]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6Q6tNszt03; Thu, 4 Sep 2025 16:03:58 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6Q337kzjHM; Thu, 4 Sep 2025 16:03:58 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:41 +0200 Subject: [PATCH v7 12/13] mesa: fix panfrost driver build MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-12-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222945 From: Quentin Schulz Panfrost drivers require libclc, so let's force libclc to be present in the PACKAGECONFIG to build the drivers. Reported-by: Trevor Woerner Reviewed-by: Dmitry Baryshkov Tested-by: Dmitry Baryshkov Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 54af134c77e90938534db1b0009ec08272f271e0..3de85044c0e86b7cf079eff9680f1a55c2c7daba 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -95,7 +95,7 @@ VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'freedreno', ',fr VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'broadcom', ',broadcom', '', d)}" VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', '${VULKAN_DRIVERS_LLVM}', '', d)}" VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'imagination', ',imagination-experimental', '', d)}" -VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost libclc', ',panfrost', '', d)}" PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers" # mesa development and testing tools support, per driver @@ -192,7 +192,7 @@ PACKAGECONFIG[lima] = "" GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'lima', ',lima', '', d)}" PACKAGECONFIG[panfrost] = "" -GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost', ',panfrost', '', d)}" +GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'panfrost libclc', ',panfrost', '', d)}" PACKAGECONFIG[tegra] = "" GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'tegra', ',tegra,nouveau', '', d)}" From patchwork Thu Sep 4 14:03:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 69662 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 410ECCAC587 for ; Thu, 4 Sep 2025 14:04:01 +0000 (UTC) Received: from smtp-bc0b.mail.infomaniak.ch (smtp-bc0b.mail.infomaniak.ch [45.157.188.11]) by mx.groups.io with SMTP id smtpd.web10.40460.1756994640660723987 for ; Thu, 04 Sep 2025 07:04:00 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.11, mailfrom: foss+yocto@0leil.net) Received: from smtp-4-0000.mail.infomaniak.ch (unknown [IPv6:2001:1600:7:10::a6b]) by smtp-4-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4cHh6R2zfRzwJh; Thu, 4 Sep 2025 16:03:59 +0200 (CEST) Received: from unknown by smtp-4-0000.mail.infomaniak.ch (Postfix) with ESMTPA id 4cHh6Q6kPXzkt8; Thu, 4 Sep 2025 16:03:58 +0200 (CEST) From: Quentin Schulz Date: Thu, 04 Sep 2025 16:03:42 +0200 Subject: [PATCH v7 13/13] mesa: upgrade 25.2.0 -> 25.2.2 MIME-Version: 1.0 Message-Id: <20250904-mesa-libclc-panfrost-v7-13-e921a65412f7@cherry.de> References: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> In-Reply-To: <20250904-mesa-libclc-panfrost-v7-0-e921a65412f7@cherry.de> To: openembedded-core@lists.openembedded.org Cc: Dmitry Baryshkov , Markus Volk , Trevor Woerner , Ross Burton , Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Thu, 04 Sep 2025 14:04:01 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-core/message/222946 From: Quentin Schulz Changelog for 25.2.1: https://docs.mesa3d.org/relnotes/25.2.1.html Changelog and sha256sum: https://docs.mesa3d.org/relnotes/25.2.2.html Signed-off-by: Quentin Schulz --- meta/recipes-graphics/mesa/mesa.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/meta/recipes-graphics/mesa/mesa.inc b/meta/recipes-graphics/mesa/mesa.inc index 3de85044c0e86b7cf079eff9680f1a55c2c7daba..5dee19fae9eab3aa3a5b6d4913d529c1fa1d8d3c 100644 --- a/meta/recipes-graphics/mesa/mesa.inc +++ b/meta/recipes-graphics/mesa/mesa.inc @@ -20,8 +20,8 @@ SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \ file://0001-meson-fix-libcl-assert-reproducibility.patch \ " -SRC_URI[sha256sum] = "7c726b21c074d14d31d253d638b741422f3c0a497ce7f1b4aaaa917d10bd8d4f" -PV = "25.2.0" +SRC_URI[sha256sum] = "43d7abcd4aa8049d8fd75538344a374104765e81e17b4a6314cee2c0160e4412" +PV = "25.2.2" UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P\d+(\.\d+)+)"