On 6/23/2026 10:56 AM, Denys Dmytriyenko wrote:
On Tue, Jun 23, 2026 at 10:45:45AM -0500, Antonios Christidis via 
lists.yoctoproject.org wrote:

On 6/23/26 10:43 AM, Andrew Davis wrote:
On 6/23/26 10:03 AM, Antonios Christidis via
lists.yoctoproject.org wrote:
From: Antonios Christidis <[email protected]>

Add local copies of mesa.inc from oe-core, renamed with version suffixes
to avoid conflicts:

- mesa-pvr-24.inc: verbatim copy for v24.0.1 (existing content, renamed)

Why do this at all? You delete this file in the very next patch. And you
also make additional modifications to mesa-pvr-25.inc in the next patch
when you first make use of it. Why not just merge these two patches and
skip all this in-the-middle state?

Andrew

Denys wanted to track the copy and paste from oe-core on a
individual patch.

Rather than my previous approach where everything was done in 1 patch.

Recommendation was to copy v25 from OE-Core as is, before making any changes
to it, so it's easy to review and track changes.

Now, the patch rather makes it backwards, as v25 is copied from v24 with 50%
similarity index, making this rather useless for the original purpose.

Why do you mix v24 and v25 in the same patch, confusing git into making wrong
diff?

And removing v24 in the next patch - shouldn't it stay for older BSPs?

Yes it should.



- mesa-pvr-25.inc: verbatim copy for v25.2.8 (new)

The "-pvr" suffix follows the v24 naming convention. Major
version numbers
are appended to distinguish between the two.

Signed-off-by: Antonios Christidis <[email protected]>
---
   .../mesa/{mesa-pvr.inc => mesa-pvr-24.inc}    |   0
   .../mesa/{mesa-pvr.inc => mesa-pvr-25.inc}    | 353 +++++++++---------
   .../recipes-graphics/mesa/mesa-pvr_24.0.1.bb  |   2 +-
   3 files changed, 168 insertions(+), 187 deletions(-)
   copy meta-ti-bsp/recipes-graphics/mesa/{mesa-pvr.inc =>
mesa-pvr-24.inc} (100%)
   rename meta-ti-bsp/recipes-graphics/mesa/{mesa-pvr.inc =>
mesa-pvr-25.inc} (50%)

diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr.inc
b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.inc
similarity index 100%
copy from meta-ti-bsp/recipes-graphics/mesa/mesa-pvr.inc
copy to meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.inc
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr.inc
b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc
similarity index 50%
rename from meta-ti-bsp/recipes-graphics/mesa/mesa-pvr.inc
rename to meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc
index 5ce93d27..af674c83 100644
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr.inc
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc
@@ -1,5 +1,4 @@
-# Copy of mesa.inc from OE-core before commit f9eb0468e45e
("mesa: upgrade 24.0.7 -> 25.0.2")
-
+# Verbatim copy of mesa.inc file from commit 2c0c7c3e5b71
   SUMMARY = "A free implementation of the OpenGL API"
   DESCRIPTION = "Mesa is an open-source implementation of the
OpenGL specification - \
   a system for rendering interactive 3D graphics.  \
@@ -12,24 +11,22 @@ HOMEPAGE = "http://mesa3d.org";
   BUGTRACKER = "https://bugs.freedesktop.org";
   SECTION = "x11"
   LICENSE = "MIT"
-LIC_FILES_CHKSUM =
"file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
+LIC_FILES_CHKSUM =
"file://docs/license.rst;md5=ffe678546d4337b732cfd12262e6af11"
     PE = "2"
     SRC_URI = "https://archive.mesa3d.org/mesa-${PV}.tar.xz \
file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
-           file://0001-drisw-fix-build-without-dri3.patch \
- file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \
- file://0001-Revert-meson-do-not-pull-in-clc-for-clover.patch \
- file://0001-amd-Include-missing-llvm-IR-header-Module.h.patch \
- file://0001-freedreno-don-t-encode-build-path-into-binaries.patch\
+ file://0001-freedreno-don-t-encode-build-path-into-binaries.patch \
   "
   -SRC_URI[sha256sum] =
"7454425f1ed4a6f1b5b107e1672b30c88b22ea0efea000ae2c7d96db93f6c26a"
-PV = "24.0.7"
+SRC_URI[sha256sum] =
"097842f3e49d996868b38688db87b006f7d4541e93ce86d2f341d8b3e7be7c93"
+PV = "25.2.8"
     UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\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() {
@@ -38,25 +35,18 @@ do_install:append() {
     if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true',
'false', d)} && [ -f ${D}${includedir}/EGL/eglplatform.h ]; then
         sed -i -e 's/^#elif defined(__unix__) &&
defined(EGL_NO_X11)$/#elif defined(__unix__) \&\&
defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG',
'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
     fi
+  # These are ICDs, apps are not supposed to link against them
+  if ${@bb.utils.contains('PACKAGECONFIG', 'glvnd', 'true',
'false', d)} ; then
+      rm -f ${D}${libdir}/libEGL_mesa.so ${D}${libdir}/libGLX_mesa.so
+  fi
   }
   -DEPENDS = "expat makedepend-native flex-native bison-native
libxml2-native zlib chrpath-replacement-native
python3-mako-native gettext-native"
-DEPENDS:append:class-target = "
${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'mesa-native',
'', d)}"
+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"
-PROVIDES = " \
-    ${@bb.utils.contains('PACKAGECONFIG', 'opengl',
'virtual/libgl', '', d)} \
-    ${@bb.utils.contains('PACKAGECONFIG', 'glvnd',
'virtual/libglx', '', d)} \
-    ${@bb.utils.contains('PACKAGECONFIG', 'gles',
'virtual/libgles1 virtual/libgles2 virtual/libgles3', '', d)} \
-    ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'virtual/egl',
'', d)} \
-    ${@bb.utils.contains('PACKAGECONFIG', 'gbm',
'virtual/libgbm', '', d)} \
-    virtual/mesa \
-    "
   -inherit meson pkgconfig python3native gettext features_check
+inherit meson pkgconfig python3native gettext features_check rust
   -BBCLASSEXTEND = "native nativesdk"
-
-ANY_OF_DISTRO_FEATURES = "opengl vulkan"
+ANY_OF_DISTRO_FEATURES = "opencl opengl vulkan"
     PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11
wayland', d)}"
   @@ -74,141 +64,141 @@ def check_buildtype(d):
   MESON_BUILDTYPE = "${@check_buildtype(d)}"
     EXTRA_OEMESON = " \
-    -Dshared-glapi=enabled \
       -Dglx-read-only-text=true \
       -Dplatforms='${@",".join("${PLATFORMS}".split())}' \
   "
   -EXTRA_OEMESON:append:class-target = "
${@bb.utils.contains('PACKAGECONFIG', 'opencl',
'-Dintel-clc=system', '', d)}"
-EXTRA_OEMESON:append:class-native = "
${@bb.utils.contains('PACKAGECONFIG', 'opencl',
'-Dintel-clc=enabled', '', d)}"
-
   def strip_comma(s):
       return s.strip(',')
   -PACKAGECONFIG = " \
-    gallium \
-    video-codecs \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'x11 vulkan wayland', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl
egl gles gbm virgl', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl',
'dri3', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan',
'dri3', '', 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:class-native = " gallium-llvm r600"
+# "egl" requires "opengl"
+PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
     # "gbm" requires "opengl"
   PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled"
   -X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm
libxdamage libxfixes xrandr"
+# "gles" requires "opengl"
+PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled,
-Dgles1=disabled -Dgles2=disabled"
+
+PACKAGECONFIG[glvnd] = "-Dglvnd=enabled, -Dglvnd=disabled, libglvnd"
+
+PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
+
+# "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
-Dmesa-clc-bundle-headers=enabled, -Dgallium-rusticl=false,
bindgen-cli-native clang"
+
+X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm
libxdamage libxfixes xrandr xorgproto libxshmfence"
   # "x11" requires "opengl"
   PACKAGECONFIG[x11] = ",-Dglx=disabled,${X11_DEPS}"
   PACKAGECONFIG[wayland] = ",,wayland-native wayland libdrm
wayland-protocols"
   -PACKAGECONFIG[dri3] = "-Ddri3=enabled, -Ddri3=disabled,
xorgproto libxshmfence"
+# Entries for GPU vendors.
+# Some of the drivers might have extra dependencies (libclc,
gallium-llvm).
+# Check them in the individual driver settings in VULKAN_DRIVERS and
+# GALLIUMDRIVERS.
+PACKAGECONFIG[amd] = ""
+PACKAGECONFIG[asahi] = ""
+PACKAGECONFIG[broadcom] = ""
+PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
+PACKAGECONFIG[freedreno] = ""
+PACKAGECONFIG[imagination] =
"-Dimagination-srv=true,-Dimagination-srv=false"
+PACKAGECONFIG[intel] = ""
+PACKAGECONFIG[lima] = ""
+PACKAGECONFIG[nouveau] = ""
+PACKAGECONFIG[panfrost] = ""
+PACKAGECONFIG[svga] = ""
+PACKAGECONFIG[tegra] = ""
+PACKAGECONFIG[v3d] = ""
+PACKAGECONFIG[vc4] = ""
+PACKAGECONFIG[virgl] = ""
+PACKAGECONFIG[zink] = ""
+
+
+VULKAN_DRIVERS_SWRAST = ",swrast"
+# Crashes on x32
+VULKAN_DRIVERS_SWRAST:x86-x32 = ""
   -# Vulkan drivers need dri3 enabled
-# amd could be enabled as well but requires gallium-llvm with
llvm >= 3.9
+# keep sorted by the driver name (rather than PKGCONFIG)
   VULKAN_DRIVERS = ""
-VULKAN_DRIVERS:append:x86 = ",intel,amd"
-VULKAN_DRIVERS:append:x86-64 = ",intel,amd"
-# i686 is a 32 bit override for mesa-native
-VULKAN_DRIVERS:append:i686 = ",intel,amd"
-VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'freedreno', ',freedreno', '', d)}"
-VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'broadcom', ',broadcom', '', d)}"
-VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'gallium-llvm', ',swrast', '', d)}"
-VULKAN_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'imagination', ',imagination-experimental', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'amd
gallium-llvm', ',amd', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'asahi
libclc gallium-llvm', ',asahi', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'broadcom', ',broadcom', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'freedreno', ',freedreno', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'imagination', ',imagination-experimental', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'intel
libclc gallium-llvm', ',intel', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'gallium-llvm', '${VULKAN_DRIVERS_SWRAST}', '', d)}"
+VULKAN_DRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'panfrost libclc', ',panfrost', '', d)}"
+
   PACKAGECONFIG[vulkan] =
"-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')},
-Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
+PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false"
     # mesa development and testing tools support, per driver
+
+# keep sorted by the driver name (rather than PKGCONFIG)
   TOOLS = ""
-TOOLS_DEPS = ""
-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)}"
-TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG',
'panfrost', ',panfrost', '', d)}"
-TOOLS:append = "${@bb.utils.contains('PACKAGECONFIG',
'imagination', ',imagination', '', d)}"
+TOOLS .= "${@bb.utils.contains('PACKAGECONFIG', 'asahi',
',asahi', '', d)}"
+TOOLS .= "${@bb.utils.contains('PACKAGECONFIG', 'etnaviv',
',etnaviv', '', d)}"
+TOOLS .= "${@bb.utils.contains('PACKAGECONFIG', 'freedreno',
',freedreno', '', d)}"
+TOOLS .= "${@bb.utils.contains('PACKAGECONFIG', 'imagination',
',imagination', '', d)}"
+TOOLS .= "${@bb.utils.contains('PACKAGECONFIG', 'lima',
',lima', '', d)}"
+TOOLS .= "${@bb.utils.contains('PACKAGECONFIG', 'panfrost',
',panfrost', '', d)}"
     # dependencies for tools.
-TOOLS_DEPS:append = "${@bb.utils.contains('PACKAGECONFIG',
'freedreno', ' ncurses libxml2 ', '', d)}"
+TOOLS_DEPS = "${@bb.utils.contains('PACKAGECONFIG',
'freedreno', ' ncurses libxml2 ', '', d)}"
     # the fdperf tool requires libconfig (a part of meta-oe) so
it needs special
   # treatment in addition to the usual 'freedreno tools'.
   PACKAGECONFIG[freedreno-fdperf] = ",,libconfig"
     PACKAGECONFIG[tools] = "-Dtools=${@strip_comma('${TOOLS}')},
-Dtools='', ${TOOLS_DEPS}"
-
-PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=false"
-PACKAGECONFIG[glvnd] = "-Dglvnd=true, -Dglvnd=false, libglvnd"
-
-# "gles" requires "opengl"
-PACKAGECONFIG[gles] = "-Dgles1=enabled -Dgles2=enabled,
-Dgles1=disabled -Dgles2=disabled"
-
-# "egl" requires "opengl"
-PACKAGECONFIG[egl] = "-Degl=enabled, -Degl=disabled"
-
-# "opencl" requires libclc from meta-clang and spirv-tools from OE-Core
-OPENCL_NATIVE = "${@bb.utils.contains('PACKAGECONFIG',
'freedreno', '-Dopencl-native=true', '', d)}"
-PACKAGECONFIG[opencl] = "-Dgallium-opencl=icd
-Dopencl-spirv=true ${OPENCL_NATIVE},-Dgallium-opencl=disabled
-Dopencl-spirv=false,libclc spirv-tools python3-ply-native"
-
-PACKAGECONFIG[broadcom] = ""
-PACKAGECONFIG[etnaviv] = ",,python3-pycparser-native"
-PACKAGECONFIG[freedreno] = ""
-PACKAGECONFIG[kmsro] = ""
-PACKAGECONFIG[vc4] = ""
-PACKAGECONFIG[v3d] = ""
-PACKAGECONFIG[zink] = ""
-
-GALLIUMDRIVERS = "swrast"
-# gallium swrast was found to crash Xorg on startup in x32 qemu
-GALLIUMDRIVERS:x86-x32 = ""
-GALLIUMDRIVERS:append:x86 = ",i915,iris,crocus"
-GALLIUMDRIVERS:append:x86-64 = ",i915,iris,crocus"
-# i686 is a 32 bit override for mesa-native
-GALLIUMDRIVERS:append:i686 = ",i915,iris,crocus"
-
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'etnaviv', ',etnaviv', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'freedreno', ',freedreno', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'kmsro', ',kmsro', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'vc4', ',vc4', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'v3d', ',v3d', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'zink', ',zink', '', d)}"
-
-# radeonsi requires LLVM
-GALLIUMDRIVERS_RADEONSI =
"${@bb.utils.contains('PACKAGECONFIG', 'r600', ',radeonsi', '',
d)}"
-GALLIUMDRIVERS_LLVM = ",r300,nouveau${GALLIUMDRIVERS_RADEONSI}"
-GALLIUMDRIVERS_LLVM:append:x86 = ",svga"
-GALLIUMDRIVERS_LLVM:append:x86-64 = ",svga"
-# i686 is a 32 bit override for mesa-native
-GALLIUMDRIVERS_LLVM:append:i686 = ",svga"
-
-PACKAGECONFIG[r600] = ""
-PACKAGECONFIG[virgl] = ""
-
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'gallium-llvm', '${GALLIUMDRIVERS_LLVM}', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'r600', ',r600', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'virgl', ',virgl', '', d)}"
+PACKAGECONFIG[xmlconfig] = "-Dxmlconfig=enabled,
-Dxmlconfig=disabled, expat"
+
+GALLIUMDRIVERS_LLVMPIPE = ",llvmpipe"
+GALLIUMDRIVERS_SOFTPIPE = ",softpipe"
+# gallium softpipe and llvmpipe was found to crash Xorg on
startup in x32 qemu
+GALLIUMDRIVERS_LLVMPIPE:x86-x32 = ""
+GALLIUMDRIVERS_SOFTPIPE:x86-x32 = ""
+
+# keep sorted by the driver name (rather than PKGCONFIG)
+GALLIUMDRIVERS = ""
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'asahi
libclc gallium-llvm', ',asahi', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'intel', ',crocus', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'etnaviv', ',etnaviv', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'freedreno', ',freedreno', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'intel', ',i915', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'intel
libclc gallium-llvm', ',iris', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'lima', ',lima', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'gallium-llvm', '${GALLIUMDRIVERS_LLVMPIPE}', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'nouveau gallium-llvm', ',nouveau', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'panfrost libclc', ',panfrost', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'amd
gallium-llvm', ',r300', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'amd',
',r600', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'amd
gallium-llvm', ',radeonsi', '', d)}"
+GALLIUMDRIVERS .= "${GALLIUMDRIVERS_SOFTPIPE}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'svga
gallium-llvm', ',svga', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'tegra', ',tegra', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'virgl', ',virgl', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'vc4',
',vc4', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG', 'v3d',
',v3d', '', d)}"
+GALLIUMDRIVERS .= "${@bb.utils.contains('PACKAGECONFIG',
'zink', ',zink', '', d)}"
     PACKAGECONFIG[gallium] =
"-Dgallium-drivers=${@strip_comma('${GALLIUMDRIVERS}')},
-Dgallium-drivers='', libdrm"
   PACKAGECONFIG[gallium-llvm] = "-Dllvm=enabled
-Dshared-llvm=enabled, -Dllvm=disabled, llvm llvm-native
elfutils"
-PACKAGECONFIG[xa]  = "-Dgallium-xa=enabled, -Dgallium-xa=disabled"
-PACKAGECONFIG[va] =
"-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
-PACKAGECONFIG[vdpau] =
"-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
-
-PACKAGECONFIG[imagination] =
"-Dimagination-srv=true,-Dimagination-srv=false"
-
-PACKAGECONFIG[lima] = ""
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'lima', ',lima', '', d)}"
   -PACKAGECONFIG[panfrost] = ""
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'panfrost', ',panfrost', '', d)}"
+MESA_CLC = "system"
+MESA_CLC:class-native = "enabled"
+INSTALL_MESA_CLC = "false"
+INSTALL_MESA_CLC:class-native = "true"
+MESA_NATIVE = "mesa-native"
+MESA_NATIVE:class-native = ""
   -PACKAGECONFIG[tegra] = ""
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG',
'tegra', ',tegra,nouveau', '', d)}"
-
-PACKAGECONFIG[vulkan-beta] = "-Dvulkan-beta=true,-Dvulkan-beta=false"
-
-PACKAGECONFIG[osmesa] = "-Dosmesa=true,-Dosmesa=false"
+PACKAGECONFIG[libclc] = "-Dmesa-clc=${MESA_CLC}
-Dinstall-mesa-clc=${INSTALL_MESA_CLC}
-Dmesa-clc-bundle-headers=enabled,,libclc spirv-tools
spirv-llvm-translator ${MESA_NATIVE}"
+PACKAGECONFIG[va] =
"-Dgallium-va=enabled,-Dgallium-va=disabled,libva-initial"
+PACKAGECONFIG[vdpau] =
"-Dgallium-vdpau=enabled,-Dgallium-vdpau=disabled,libvdpau"
     PACKAGECONFIG[perfetto] =
"-Dperfetto=true,-Dperfetto=false,libperfetto"
   @@ -219,6 +209,8 @@ PACKAGECONFIG[lmsensors] =
"-Dlmsensors=enabled,-Dlmsensors=disabled,lmsensors"
   VIDEO_CODECS ?=
"${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial',
'all', 'all_free', d)}"
   PACKAGECONFIG[video-codecs] = "-Dvideo-codecs=${VIDEO_CODECS},
-Dvideo-codecs=''"
   +PACKAGECONFIG[teflon] = "-Dteflon=true, -Dteflon=false"
+
   # llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2)
   FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer"
   @@ -237,75 +229,63 @@ RPROVIDES:libopencl-mesa += "virtual-opencl-icd"
   RPROVIDES:libgles2-mesa += "libgles3-mesa"
   RPROVIDES:libgles2-mesa-dev += "libgles3-mesa-dev"
   -RDEPENDS:libopencl-mesa +=
"${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc
spirv-tools', '', d)}"
+RDEPENDS:libopencl-mesa +=
"${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc', '',
d)}"
     PACKAGES =+ "libegl-mesa libegl-mesa-dev \
-             libosmesa libosmesa-dev \
+             libgallium \
                libgl-mesa libgl-mesa-dev \
                libglx-mesa libglx-mesa-dev \
                libglapi libglapi-dev \
                libgbm libgbm-dev \
                libgles1-mesa libgles1-mesa-dev \
                libgles2-mesa libgles2-mesa-dev \
-             libopencl-mesa libopencl-mesa-dev \
-             libxatracker libxatracker-dev \
+             libopencl-mesa \
+             libteflon \
                mesa-megadriver mesa-vulkan-drivers \
                mesa-vdpau-drivers mesa-tools \
               "
   -do_install:append () {
-    # Drivers never need libtool .la files
-    rm -f ${D}${libdir}/dri/*.la
-    rm -f ${D}${libdir}/egl/*.la
-    rm -f ${D}${libdir}/gallium-pipe/*.la
-    rm -f ${D}${libdir}/gbm/*.la
-
-    # libwayland-egl has been moved to wayland 1.15+
-    rm -f ${D}${libdir}/libwayland-egl*
-    rm -f ${D}${libdir}/pkgconfig/wayland-egl.pc
-}
-
-do_install:append:class-native () {
-    if ${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'true',
'false', d)}; then
-        install -d ${D}${bindir}
-        install -m0755 ${B}/src/intel/compiler/intel_clc ${D}${bindir}
-    fi
-}
-
   # For the packages that make up the OpenGL interfaces, inject
variables so that
   # they don't get Debian-renamed (which would remove the -mesa
suffix), and
   # RPROVIDEs/RCONFLICTs on the generic libgl name.
   python __anonymous() {
       pkgconfig = (d.getVar('PACKAGECONFIG') or "").split()
+    mlprefix = d.getVar("MLPREFIX")
       suffix = ""
       if "-native" in d.getVar("PN"):
           suffix = "-native"
-    for p in (("egl", "libegl", "libegl1"),
-              ("opengl", "libgl", "libgl1"),
-              ("glvnd", "libglx",),
-              ("gles", "libgles1", "libglesv1-cm1"),
-              ("gles", "libgles2", "libglesv2-2", "libgles3"),
-              ("opencl", "libopencl",)):
-        if not p[0] in pkgconfig:
-            continue
-        mlprefix = d.getVar("MLPREFIX")
-        fullp = mlprefix + p[1] + "-mesa" + suffix
-        mlprefix = d.getVar("MLPREFIX")
-        pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
-        d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
-        d.appendVar("RREPLACES:" + fullp, pkgs)
-        d.appendVar("RPROVIDES:" + fullp, pkgs)
-        d.appendVar("RCONFLICTS:" + fullp, pkgs)
   +    for p in ("libegl", "libgl", "libglx", "libgles1",
"libgles2", "libgles3", "libopencl"):
+        fullp = mlprefix + p + "-mesa" + suffix
           d.appendVar("RRECOMMENDS:" + fullp, "
${MLPREFIX}mesa-megadriver" + suffix)
   -        # For -dev, the first element is both the Debian and
original name
-        fullp = mlprefix + p[1] + "-mesa-dev" + suffix
-        pkgs = " " + mlprefix + p[1] + "-dev" + suffix
-        d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
-        d.appendVar("RREPLACES:" + fullp, pkgs)
-        d.appendVar("RPROVIDES:" + fullp, pkgs)
-        d.appendVar("RCONFLICTS:" + fullp, pkgs)
+    d.setVar("DEBIAN_NOAUTONAME:%slibopencl-mesa%s" %
(mlprefix, suffix), "1")
+
+    if 'glvnd' in pkgconfig:
+        for p in ("libegl", "libglx"):
+            fullp = mlprefix + p + "-mesa" + suffix
+            d.appendVar("RPROVIDES:" + fullp, ' virtual-%s-icd' % p)
+    else:
+        for p in (("egl", "libegl", "libegl1"),
+                  ("opengl", "libgl", "libgl1"),
+                  ("gles", "libgles1", "libglesv1-cm1"),
+                  ("gles", "libgles2", "libglesv2-2", "libgles3")):
+            if not p[0] in pkgconfig:
+                continue
+            fullp = mlprefix + p[1] + "-mesa" + suffix
+            pkgs = " " + " ".join(mlprefix + x + suffix for x in p[1:])
+            d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
+            d.appendVar("RREPLACES:" + fullp, pkgs)
+            d.appendVar("RPROVIDES:" + fullp, pkgs)
+            d.appendVar("RCONFLICTS:" + fullp, pkgs)
+
+            # For -dev, the first element is both the Debian
and original name
+            fullp = mlprefix + p[1] + "-mesa-dev" + suffix
+            pkgs = " " + mlprefix + p[1] + "-dev" + suffix
+            d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
+            d.appendVar("RREPLACES:" + fullp, pkgs)
+            d.appendVar("RPROVIDES:" + fullp, pkgs)
+            d.appendVar("RCONFLICTS:" + fullp, pkgs)
   }
     python mesa_populate_packages() {
@@ -327,9 +307,6 @@ python mesa_populate_packages() {
                   d.appendVar("RPROVIDES:%s" % lib_name, pkg_name)
                   d.appendVar("RCONFLICTS:%s" % lib_name, pkg_name)
                   d.appendVar("RREPLACES:%s" % lib_name, pkg_name)
-
-    pipe_drivers_root = os.path.join(d.getVar('libdir'),
"gallium-pipe")
-    do_split_packages(d, pipe_drivers_root, r'^pipe_(.*)\.so$',
'mesa-driver-pipe-%s', 'Mesa %s pipe driver', extra_depends='')
   }
     PACKAGESPLITFUNCS =+ "mesa_populate_packages"
@@ -341,34 +318,38 @@ FILES:mesa-megadriver = "${libdir}/dri/*
${datadir}/drirc.d"
   FILES:mesa-vulkan-drivers = "${libdir}/libvulkan_*.so
${libdir}/libpowervr_rogue.so ${datadir}/vulkan"
   FILES:${PN}-vdpau-drivers = "${libdir}/vdpau/*.so.*"
   FILES:libegl-mesa = "${libdir}/libEGL*.so.*
${datadir}/glvnd/egl_vendor.d"
-FILES:libgbm = "${libdir}/libgbm.so.*"
+FILES:libgbm = "${libdir}/libgbm.so.* ${libdir}/gbm/*_gbm.so"
+FILES:libgallium = "${libdir}/libgallium-*.so"
   FILES:libgles1-mesa = "${libdir}/libGLESv1*.so.*"
   FILES:libgles2-mesa = "${libdir}/libGLESv2.so.*"
   FILES:libgl-mesa = "${libdir}/libGL.so.*"
   FILES:libglx-mesa = "${libdir}/libGLX*.so.*"
-FILES:libopencl-mesa = "${libdir}/libMesaOpenCL.so.*
${libdir}/gallium-pipe/*.so
${sysconfdir}/OpenCL/vendors/mesa.icd"
+FILES:libopencl-mesa = "${libdir}/lib*OpenCL.so*
${sysconfdir}/OpenCL/vendors/*.icd"
   FILES:libglapi = "${libdir}/libglapi.so.*"
-FILES:libosmesa = "${libdir}/libOSMesa.so.*"
-FILES:libxatracker = "${libdir}/libxatracker.so.*"
   -FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc
${includedir}/vulkan ${libdir}/vdpau/*.so"
+FILES:${PN}-dev = "${libdir}/pkgconfig/dri.pc
${includedir}/GL/internal/dri_interface.h ${includedir}/vulkan
${libdir}/vdpau/*.so"
   FILES:libegl-mesa-dev = "${libdir}/libEGL*.* ${includedir}/EGL
${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
-FILES:libgbm-dev = "${libdir}/libgbm.*
${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
-FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL
${libdir}/pkgconfig/gl.pc"
-FILES:libglx-mesa-dev = "${libdir}/libGLX*.*"
+FILES:libgbm-dev = "${libdir}/libgbm.*
${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h
${includedir}/gbm_backend_abi.h"
+FILES:libgl-mesa-dev = "${libdir}/libGL.* ${includedir}/GL/*.h
${libdir}/pkgconfig/gl.pc ${libdir}/pkgconfig/glx.pc"
   FILES:libglapi-dev = "${libdir}/libglapi.*"
   FILES:libgles1-mesa-dev = "${libdir}/libGLESv1*.*
${includedir}/GLES ${libdir}/pkgconfig/glesv1*.pc"
   FILES:libgles2-mesa-dev = "${libdir}/libGLESv2.*
${includedir}/GLES2 ${includedir}/GLES3
${libdir}/pkgconfig/glesv2.pc"
-FILES:libopencl-mesa-dev = "${libdir}/libMesaOpenCL.so"
-FILES:libosmesa-dev = "${libdir}/libOSMesa.*
${includedir}/GL/osmesa.h ${libdir}/pkgconfig/osmesa.pc"
-FILES:libxatracker-dev = "${libdir}/libxatracker.so
${libdir}/libxatracker.la \
-                          ${includedir}/xa_tracker.h
${includedir}/xa_composite.h ${includedir}/xa_context.h \
-                          ${libdir}/pkgconfig/xatracker.pc"
+FILES:libteflon = "${libdir}/libteflon.so"
   # catch all to get all the tools and data
   FILES:${PN}-tools = "${bindir} ${datadir}"
   ALLOW_EMPTY:${PN}-tools = "1"
   +# All DRI drivers are symlinks to libdril_dri.so
+INSANE_SKIP:${PN}-megadriver += "dev-so"
+
+# OpenCL ICDs package also ship correspondig .so files, there
is no -dev package
+INSANE_SKIP:libopencl-mesa += "dev-so"
+
   # Fix upgrade path from mesa to mesa-megadriver
   RREPLACES:mesa-megadriver = "mesa"
   RCONFLICTS:mesa-megadriver = "mesa"
   RPROVIDES:mesa-megadriver = "mesa"
+
+# As of May 2025 it is known that LTO breaks Mesa, for example:
+# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34318
+LTO = ""
diff --git
a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_24.0.1.bb
b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_24.0.1.bb
index 8ec06800..2c20a538 100644
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_24.0.1.bb
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_24.0.1.bb
@@ -2,7 +2,7 @@
   # upstream yet. This allows us to build the shims we need
without completely
   # clobbering mesa.
   -require recipes-graphics/mesa/mesa-pvr.inc
+require recipes-graphics/mesa/mesa-pvr-24.inc
     SUMMARY += " (with PowerVR for TI parts)"







--
Ryan Eatmon                [email protected]
-----------------------------------------
Texas Instruments, Inc.  -  LCPD  -  MGTS
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#20061): 
https://lists.yoctoproject.org/g/meta-ti/message/20061
Mute This Topic: https://lists.yoctoproject.org/mt/119942303/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to