* [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25
@ 2026-06-23 15:03 a-christidis
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core a-christidis
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: a-christidis @ 2026-06-23 15:03 UTC (permalink / raw)
To: reatmon, denys; +Cc: meta-ti
From: Antonios Christidis <a-christidis@ti.com>
Dear all,
This series migrates mesa-pvr from v24.0.1 to v25.2.8. mesa-pvr is a fork
of Mesa that adds Gallium frontend support for PVR GPUs.
The recipe builds and packages for both Rogue and SGX GPU architectures.
Only Rogue supports hardware acceleration - SGX will fall back to software
rendering. For SGX hardware acceleration, the scarthgap branch SDK should
be used instead, as it is the most recent legacy device SDK release.
Kind Regards,
Antonios
---
v3:
- Split into a 2 patch series. 1 patches copies mesa.inc from oe-core the
other modifies and adds functionality on top of mesa.inc.
v2:
- Rebase on wrynose-next
- Add support for master branch in subject prefix tag
Antonios Christidis (2):
mesa-pvr: Add versioned mesa.inc copies from oe-core
mesa-pvr: Migrate mesa from v24.0.1 -> v25.2.8
meta-ti-bsp/conf/machine/include/ti-bsp.inc | 2 +-
...e-lp_bld_misc.cpp-to-support-llvm-19.patch | 38 --
.../0001-drisw-fix-build-without-dri3.patch | 57 ---
.../0001-gallium-Fix-build-with-llvm-17.patch | 40 --
...ll-StringMapIterator-from-llvm-scope.patch | 31 --
...livm-Fix-armhf-build-against-LLVM-22.patch | 29 --
...k-for-all-linux-host_os-combinations.patch | 43 --
...on-t-try-zink-if-not-enabled-in-mesa.patch | 41 --
...sdetects-64bit-atomics-on-mips-clang.patch | 7 +-
.../recipes-graphics/mesa/mesa-pvr-25.inc | 346 ++++++++++++++++
.../recipes-graphics/mesa/mesa-pvr.inc | 374 ------------------
.../recipes-graphics/mesa/mesa-pvr_24.0.1.bb | 44 ---
.../recipes-graphics/mesa/mesa-pvr_25.2.8.bb | 60 +++
13 files changed, 410 insertions(+), 702 deletions(-)
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-Update-lp_bld_misc.cpp-to-support-llvm-19.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-drisw-fix-build-without-dri3.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallium-Fix-build-with-llvm-17.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Call-StringMapIterator-from-llvm-scope.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Fix-armhf-build-against-LLVM-22.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson.build-check-for-all-linux-host_os-combinations.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
rename meta-ti-bsp/recipes-graphics/mesa/{mesa-pvr-24.0.1 => mesa-pvr-25.2.8}/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch (90%)
create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr.inc
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_24.0.1.bb
create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_25.2.8.bb
--
2.34.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core
2026-06-23 15:03 [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25 a-christidis
@ 2026-06-23 15:03 ` a-christidis
2026-06-23 15:43 ` Andrew Davis
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 2/2] mesa-pvr: Migrate mesa from v24.0.1 -> v25.2.8 a-christidis
2026-06-23 15:05 ` [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25 PRC Automation
2 siblings, 1 reply; 8+ messages in thread
From: a-christidis @ 2026-06-23 15:03 UTC (permalink / raw)
To: reatmon, denys; +Cc: meta-ti
From: Antonios Christidis <a-christidis@ti.com>
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)
- 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 <a-christidis@ti.com>
---
.../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)"
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [meta-ti][master/wrynose][PATCH v3 2/2] mesa-pvr: Migrate mesa from v24.0.1 -> v25.2.8
2026-06-23 15:03 [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25 a-christidis
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core a-christidis
@ 2026-06-23 15:03 ` a-christidis
2026-06-23 15:05 ` [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25 PRC Automation
2 siblings, 0 replies; 8+ messages in thread
From: a-christidis @ 2026-06-23 15:03 UTC (permalink / raw)
To: reatmon, denys; +Cc: meta-ti
From: Antonios Christidis <a-christidis@ti.com>
Migrate mesa from v24.0.1 -> v25.2.8. Edit the ti-bsp logic to
build/package mesa-pvr v25 for both Rogue and SGX cores.
Remove some duplicate variables from mesa-pvr-25.inc inorder to work with
the main bitbake recipe mesa-pvr_25.2.8.bb.
Remove mesa-pvr v24 related recipes.
Signed-off-by: Antonios Christidis <a-christidis@ti.com>
---
v3:
- Changed SRCREV on mesa-pvr_25.2.8.bb to account for LLVM issues when
building SGX devices. More info at TI's Mesa Github fork.
- ti-bsp.inc now points 25% for all machines, the logic spliting Rogue
and SGX cores removed.
- Added INSANE_SKIP 32bit-time
meta-ti-bsp/conf/machine/include/ti-bsp.inc | 2 +-
...e-lp_bld_misc.cpp-to-support-llvm-19.patch | 38 --
.../0001-drisw-fix-build-without-dri3.patch | 57 ---
.../0001-gallium-Fix-build-with-llvm-17.patch | 40 --
...ll-StringMapIterator-from-llvm-scope.patch | 31 --
...livm-Fix-armhf-build-against-LLVM-22.patch | 29 --
...k-for-all-linux-host_os-combinations.patch | 43 --
...on-t-try-zink-if-not-enabled-in-mesa.patch | 41 --
.../recipes-graphics/mesa/mesa-pvr-24.inc | 374 ------------------
...sdetects-64bit-atomics-on-mips-clang.patch | 7 +-
.../recipes-graphics/mesa/mesa-pvr-25.inc | 9 -
.../recipes-graphics/mesa/mesa-pvr_24.0.1.bb | 44 ---
.../recipes-graphics/mesa/mesa-pvr_25.2.8.bb | 60 +++
13 files changed, 64 insertions(+), 711 deletions(-)
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-Update-lp_bld_misc.cpp-to-support-llvm-19.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-drisw-fix-build-without-dri3.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallium-Fix-build-with-llvm-17.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Call-StringMapIterator-from-llvm-scope.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Fix-armhf-build-against-LLVM-22.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson.build-check-for-all-linux-host_os-combinations.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.inc
rename meta-ti-bsp/recipes-graphics/mesa/{mesa-pvr-24.0.1 => mesa-pvr-25.2.8}/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch (90%)
delete mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_24.0.1.bb
create mode 100644 meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_25.2.8.bb
diff --git a/meta-ti-bsp/conf/machine/include/ti-bsp.inc b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
index a48c4f07..bf90d1da 100644
--- a/meta-ti-bsp/conf/machine/include/ti-bsp.inc
+++ b/meta-ti-bsp/conf/machine/include/ti-bsp.inc
@@ -44,7 +44,7 @@ BSP_BOOTLOADER_VERSION:bsp-ti-6_18 = "2026.01%"
BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_18 = "ti-img-rogue-driver"
BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_18 = "26%"
-BSP_MESA_PVR_VERSION:bsp-ti-6_18 = "24%"
+BSP_MESA_PVR_VERSION:bsp-ti-6_18 = "25%"
# ==========
# ti-6_12
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-Update-lp_bld_misc.cpp-to-support-llvm-19.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-Update-lp_bld_misc.cpp-to-support-llvm-19.patch
deleted file mode 100644
index 9e5bb342..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-Update-lp_bld_misc.cpp-to-support-llvm-19.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From fa9cd89a85b904615ebc11da609445b5b751e68d Mon Sep 17 00:00:00 2001
-From: Satadru Pramanik <satadru@umich.edu>
-Date: Sat, 5 Oct 2024 13:35:52 +0000
-Subject: [PATCH] Update lp_bld_misc.cpp to support llvm-19+.
-
-Fixes #11896.
-cc: mesa-stable
-
-Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31533>
-Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/mesa/-/commit/fa9cd89a85b904615ebc11da609445b5b751e68d]
-Signed-off-by: Randolph Sapp <rs@ti.com>
----
- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-index 7975fcf1ac9..5b615d627ff 100644
---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-@@ -329,8 +329,14 @@ lp_build_fill_mattrs(std::vector<std::string> &MAttrs)
- * which allows us to enable/disable code generation based
- * on the results of cpuid on these architectures.
- */
-- llvm::StringMap<bool> features;
-- llvm::sys::getHostCPUFeatures(features);
-+ #if LLVM_VERSION_MAJOR >= 19
-+ /* llvm-19+ returns StringMap from getHostCPUFeatures.
-+ */
-+ auto features = llvm::sys::getHostCPUFeatures();
-+ #else
-+ llvm::StringMap<bool> features;
-+ llvm::sys::getHostCPUFeatures(features);
-+ #endif
-
- for (llvm::StringMapIterator<bool> f = features.begin();
- f != features.end();
---
-2.47.1
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-drisw-fix-build-without-dri3.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-drisw-fix-build-without-dri3.patch
deleted file mode 100644
index 9d662b34..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-drisw-fix-build-without-dri3.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 4bd15a419e892da843489c374c58c5b29c40b5d6 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@smile.fr>
-Date: Tue, 6 Feb 2024 09:47:09 +0100
-Subject: [PATCH 1/2] drisw: fix build without dri3
-
-commit 1887368df41 ("glx/sw: check for modifier support in the kopper path")
-added dri3_priv.h header and dri3_check_multibuffer() function in drisw that
-can be build without dri3.
-
- i686-buildroot-linux-gnu/bin/ld: src/glx/libglx.a.p/drisw_glx.c.o: in function `driswCreateScreenDriver':
- drisw_glx.c:(.text.driswCreateScreenDriver+0x3a0): undefined reference to `dri3_check_multibuffer'
- collect2: error: ld returned 1 exit status
-
-Add HAVE_DRI3 guard around dri3_priv.h header and the zink code using
-dri3_check_multibuffer().
-
-Fixes: 1887368df41 ("glx/sw: check for modifier support in the kopper path")
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478]
-Signed-off-by: Romain Naour <romain.naour@smile.fr>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/glx/drisw_glx.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
-index 3d3f752..4b19e2d 100644
---- a/src/glx/drisw_glx.c
-+++ b/src/glx/drisw_glx.c
-@@ -32,7 +32,9 @@
- #include <dlfcn.h>
- #include "dri_common.h"
- #include "drisw_priv.h"
-+#ifdef HAVE_DRI3
- #include "dri3_priv.h"
-+#endif
- #include <X11/extensions/shmproto.h>
- #include <assert.h>
- #include <vulkan/vulkan_core.h>
-@@ -995,6 +997,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv,
- goto handle_error;
- }
-
-+#ifdef HAVE_DRI3
- if (pdpyp->zink) {
- bool err;
- psc->has_multibuffer = dri3_check_multibuffer(priv->dpy, &err);
-@@ -1005,6 +1008,7 @@ driswCreateScreenDriver(int screen, struct glx_display *priv,
- goto handle_error;
- }
- }
-+#endif
-
- glx_config_destroy_list(psc->base.configs);
- psc->base.configs = configs;
---
-2.44.0
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallium-Fix-build-with-llvm-17.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallium-Fix-build-with-llvm-17.patch
deleted file mode 100644
index 738ff267..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallium-Fix-build-with-llvm-17.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 6d07f6aa7f92f40d78a2db645f16f0f3e7d3c2e8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 23 Jun 2023 01:20:38 -0700
-Subject: [PATCH] gallium: Fix build with llvm 17
-
-These headers are not available for C files in llvm 17+
-and they seem to be not needed to compile after all with llvm 17
-so add conditions to exclude them for llvm >= 17
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23827]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/gallium/auxiliary/gallivm/lp_bld_init.c | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c
-index cd2108f..b1a4d03 100644
---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c
-+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c
-@@ -46,15 +46,19 @@
- #if GALLIVM_USE_NEW_PASS == 1
- #include <llvm-c/Transforms/PassBuilder.h>
- #elif GALLIVM_HAVE_CORO == 1
-+#if LLVM_VERSION_MAJOR < 17
- #include <llvm-c/Transforms/Scalar.h>
--#if LLVM_VERSION_MAJOR >= 7
-+#endif
-+#if LLVM_VERSION_MAJOR >= 7 && LLVM_VERSION_MAJOR < 17
- #include <llvm-c/Transforms/Utils.h>
- #endif
- #if LLVM_VERSION_MAJOR <= 8 && (DETECT_ARCH_AARCH64 || DETECT_ARCH_ARM || DETECT_ARCH_S390 || DETECT_ARCH_MIPS64)
- #include <llvm-c/Transforms/IPO.h>
- #endif
-+#if LLVM_VERSION_MAJOR < 17
- #include <llvm-c/Transforms/Coroutines.h>
- #endif
-+#endif
-
- unsigned gallivm_perf = 0;
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Call-StringMapIterator-from-llvm-scope.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Call-StringMapIterator-from-llvm-scope.patch
deleted file mode 100644
index 1751df6f..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Call-StringMapIterator-from-llvm-scope.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d17338d403980e1932a42f5d11c2a1fb7b25127b Mon Sep 17 00:00:00 2001
-From: MastaG <mastag@gmail.com>
-Date: Wed, 3 Jul 2024 21:00:42 +0200
-Subject: [PATCH] gallivm: Call StringMapIterator from llvm:: scope
-
-Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11392
-Fixes: b035d9cab5a4 ("gallivm: use getHostCPUFeatures on x86/llvm-4.0+.")
-Reviewed-by: David Heidelberg <david@ixit.cz>
-Signed-off-by: David Heidelberg <david@ixit.cz>
-Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30009>
-Upstream-Status: Backport [https://gitlab.freedesktop.org/mesa/mesa/-/commit/d17338d403980e1932a42f5d11c2a1fb7b25127b]
-Signed-off-by: Randolph Sapp <rs@ti.com>
----
- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-index 95a8a6c6a08..f3c10652ed6 100644
---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-@@ -332,7 +332,7 @@ lp_build_fill_mattrs(std::vector<std::string> &MAttrs)
- llvm::StringMap<bool> features;
- llvm::sys::getHostCPUFeatures(features);
-
-- for (StringMapIterator<bool> f = features.begin();
-+ for (llvm::StringMapIterator<bool> f = features.begin();
- f != features.end();
- ++f) {
- MAttrs.push_back(((*f).second ? "+" : "-") + (*f).first().str());
---
-2.47.1
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Fix-armhf-build-against-LLVM-22.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Fix-armhf-build-against-LLVM-22.patch
deleted file mode 100644
index 935d76d1..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-gallivm-Fix-armhf-build-against-LLVM-22.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 973dc32026c164d0c13f7f5bef36c8d1c2375973 Mon Sep 17 00:00:00 2001
-From: Alessandro Astone <ales.astone@gmail.com>
-Date: Sun, 1 Mar 2026 18:14:09 +0100
-Subject: [PATCH] gallivm: Fix armhf build against LLVM 22
-
-StringMapIterator<bool> became StringMapIterBase<bool, false /* IsConst */>;
-Use `auto` to handle either case.
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40161]
-Signed-off-by: Jose Quaresma <jose.quaresma@oss.qualcomm.com>
----
- src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-index d3ad342..c95d86e 100644
---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp
-@@ -331,7 +331,7 @@ lp_build_fill_mattrs(std::vector<std::string> &MAttrs)
- llvm::sys::getHostCPUFeatures(features);
- #endif
-
-- for (llvm::StringMapIterator<bool> f = features.begin();
-+ for (auto f = features.begin();
- f != features.end();
- ++f) {
- MAttrs.push_back(((*f).second ? "+" : "-") + (*f).first().str());
---
-2.53.0
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson.build-check-for-all-linux-host_os-combinations.patch
deleted file mode 100644
index 964e0a44..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson.build-check-for-all-linux-host_os-combinations.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From f2fe76d506f356de055b8eca83a7c9d0744a40af Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair@alistair23.me>
-Date: Thu, 14 Nov 2019 13:04:49 -0800
-Subject: [PATCH] meson.build: check for all linux host_os combinations
-
-Make sure that we are also looking for our host_os combinations like
-linux-musl etc. when assuming support for DRM/KMS.
-
-Also delete a duplicate line.
-
-Upstream-Status: Pending
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-Signed-off-by: Alistair Francis <alistair@alistair23.me>
-
----
- meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 35cc5f1..9a49c0d 100644
---- a/meson.build
-+++ b/meson.build
-@@ -128,7 +128,7 @@
- # Only build shared_glapi if at least one OpenGL API is enabled
- with_shared_glapi = with_shared_glapi and with_any_opengl
-
--system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm'].contains(host_machine.system())
-+system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos', 'android', 'managarm'].contains(host_machine.system()) or host_machine.system().startswith('linux')
-
- gallium_drivers = get_option('gallium-drivers')
- if gallium_drivers.contains('auto')
-@@ -998,7 +998,7 @@
- endif
-
- # TODO: this is very incomplete
--if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm'].contains(host_machine.system())
-+if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd', 'haiku', 'android', 'managarm'].contains(host_machine.system()) or host_machine.system().startswith('linux')
- pre_args += '-D_GNU_SOURCE'
- elif host_machine.system() == 'sunos'
- pre_args += '-D__EXTENSIONS__'
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
deleted file mode 100644
index 1203c446..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 62495ebb977866c52d5bed8499a547c49f0d9bc1 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour@smile.fr>
-Date: Tue, 6 Feb 2024 09:47:10 +0100
-Subject: [PATCH 2/2] glxext: don't try zink if not enabled in mesa
-
-Commit 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers")
-added an automatic zink fallback even when the zink gallium is not
-enabled at build time.
-
-It leads to unexpected error log while loading drisw driver and
-zink is not installed on the rootfs:
-
- MESA-LOADER: failed to open zink: /usr/lib/dri/zink_dri.so
-
-Fixes: 7d9ea77b459 ("glx: add automatic zink fallback loading between hw and sw drivers")
-
-Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27478]
-Signed-off-by: Romain Naour <romain.naour@smile.fr>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/glx/glxext.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/glx/glxext.c b/src/glx/glxext.c
-index 05c825a..7a06aa9 100644
---- a/src/glx/glxext.c
-+++ b/src/glx/glxext.c
-@@ -908,9 +908,11 @@ __glXInitialize(Display * dpy)
- #endif /* HAVE_DRI3 */
- if (!debug_get_bool_option("LIBGL_DRI2_DISABLE", false))
- dpyPriv->dri2Display = dri2CreateDisplay(dpy);
-+#if defined(HAVE_ZINK)
- if (!dpyPriv->dri3Display && !dpyPriv->dri2Display)
- try_zink = !debug_get_bool_option("LIBGL_KOPPER_DISABLE", false) &&
- !getenv("GALLIUM_DRIVER");
-+#endif /* HAVE_ZINK */
- }
- #endif /* GLX_USE_DRM */
- if (glx_direct)
---
-2.44.0
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.inc b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.inc
deleted file mode 100644
index 5ce93d27..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.inc
+++ /dev/null
@@ -1,374 +0,0 @@
-# Copy of mesa.inc from OE-core before commit f9eb0468e45e ("mesa: upgrade 24.0.7 -> 25.0.2")
-
-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. \
-A variety of device drivers allows Mesa to be used in many different environments \
-ranging from software emulation to complete hardware acceleration for modern GPUs. \
-Mesa is used as part of the overall Direct Rendering Infrastructure and X.org \
-environment."
-
-HOMEPAGE = "http://mesa3d.org"
-BUGTRACKER = "https://bugs.freedesktop.org"
-SECTION = "x11"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
-
-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\
-"
-
-SRC_URI[sha256sum] = "7454425f1ed4a6f1b5b107e1672b30c88b22ea0efea000ae2c7d96db93f6c26a"
-PV = "24.0.7"
-
-UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
-
-#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() {
- # sed can't find EGL/eglplatform.h as it doesn't get installed when glvnd enabled.
- # So, check if EGL/eglplatform.h exists before running sed.
- 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
-}
-
-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)}"
-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
-
-BBCLASSEXTEND = "native nativesdk"
-
-ANY_OF_DISTRO_FEATURES = "opengl vulkan"
-
-PLATFORMS ??= "${@bb.utils.filter('PACKAGECONFIG', 'x11 wayland', d)}"
-
-# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug'
-# by default the upstream mesa sources build a debug release
-# here we assume the user will want a release build by default
-MESA_BUILD_TYPE ?= "release"
-def check_buildtype(d):
- _buildtype = d.getVar('MESA_BUILD_TYPE')
- if _buildtype not in ['release', 'debug']:
- bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype)
- if _buildtype == 'debug':
- return 'debugoptimized'
- return 'plain'
-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)} \
-"
-
-PACKAGECONFIG:append:class-native = " gallium-llvm r600"
-
-# "gbm" requires "opengl"
-PACKAGECONFIG[gbm] = "-Dgbm=enabled,-Dgbm=disabled"
-
-X11_DEPS = "xorgproto virtual/libx11 libxext libxxf86vm libxdamage libxfixes xrandr"
-# "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"
-
-# Vulkan drivers need dri3 enabled
-# amd could be enabled as well but requires gallium-llvm with llvm >= 3.9
-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)}"
-PACKAGECONFIG[vulkan] = "-Dvulkan-drivers=${@strip_comma('${VULKAN_DRIVERS}')}, -Dvulkan-drivers='',glslang-native vulkan-loader vulkan-headers"
-
-# mesa development and testing tools support, per driver
-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)}"
-
-# dependencies for tools.
-TOOLS_DEPS:append = "${@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[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)}"
-
-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[perfetto] = "-Dperfetto=true,-Dperfetto=false,libperfetto"
-
-PACKAGECONFIG[unwind] = "-Dlibunwind=enabled,-Dlibunwind=disabled,libunwind"
-
-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=''"
-
-# llvmpipe is slow if compiled with -fomit-frame-pointer (e.g. -O2)
-FULL_OPTIMIZATION:append = " -fno-omit-frame-pointer"
-
-CFLAGS:append:armv5 = " -DMISSING_64BIT_ATOMICS"
-CFLAGS:append:armv6 = " -DMISSING_64BIT_ATOMICS"
-
-# Remove the mesa dependency on mesa-dev, as mesa is empty
-DEV_PKG_DEPENDENCY = ""
-
-# Provide virtual names to allow selecting preferred rproviders
-RPROVIDES:mesa-vulkan-drivers += "virtual-vulkan-icd"
-RPROVIDES:libopencl-mesa += "virtual-opencl-icd"
-
-# GLES2 and GLES3 implementations are packaged in a single library in libgles2-mesa.
-# Add a dependency so the GLES3 dev package is associated with its implementation.
-RPROVIDES:libgles2-mesa += "libgles3-mesa"
-RPROVIDES:libgles2-mesa-dev += "libgles3-mesa-dev"
-
-RDEPENDS:libopencl-mesa += "${@bb.utils.contains('PACKAGECONFIG', 'opencl', 'libclc spirv-tools', '', d)}"
-
-PACKAGES =+ "libegl-mesa libegl-mesa-dev \
- libosmesa libosmesa-dev \
- 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 \
- 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()
- 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)
-
- 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)
-}
-
-python mesa_populate_packages() {
- pkgs = ['mesa', 'mesa-dev', 'mesa-dbg']
- for pkg in pkgs:
- d.setVar("RPROVIDES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1))
- d.setVar("RCONFLICTS:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1))
- d.setVar("RREPLACES:%s" % pkg, pkg.replace("mesa", "mesa-dri", 1))
-
- import re
- dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri")
- if os.path.isdir(dri_drivers_root):
- dri_pkgs = sorted(os.listdir(dri_drivers_root))
- lib_name = d.expand("${MLPREFIX}mesa-megadriver")
- for p in dri_pkgs:
- m = re.match(r'^(.*)_dri\.so$', p)
- if m:
- pkg_name = " ${MLPREFIX}mesa-driver-%s" % legitimize_package_name(m.group(1))
- 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"
-
-PACKAGES_DYNAMIC += "^mesa-driver-.*"
-PACKAGES_DYNAMIC:class-native = "^mesa-driver-.*-native"
-
-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: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: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: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: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"
-# catch all to get all the tools and data
-FILES:${PN}-tools = "${bindir} ${datadir}"
-ALLOW_EMPTY:${PN}-tools = "1"
-
-# Fix upgrade path from mesa to mesa-megadriver
-RREPLACES:mesa-megadriver = "mesa"
-RCONFLICTS:mesa-megadriver = "mesa"
-RPROVIDES:mesa-megadriver = "mesa"
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.2.8/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
similarity index 90%
rename from meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
rename to meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.2.8/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
index 35bd0ea1..baa98a0d 100644
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-24.0.1/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.2.8/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
@@ -1,11 +1,10 @@
-From 3ef37c63f03ad6f2af407de350486fdd25e9132a Mon Sep 17 00:00:00 2001
+From 02cc21800fe29f566add525e63f619c0536d6e7b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 13 Jan 2020 15:23:47 -0800
Subject: [PATCH] meson misdetects 64bit atomics on mips/clang
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
src/util/u_atomic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -17,9 +16,9 @@ index 5a5eab4..e499516 100644
@@ -21,7 +21,7 @@
* IN THE SOFTWARE.
*/
-
+
-#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
+#if !defined(__clang__) && defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
-
+
#include <stdint.h>
#include <pthread.h>
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc
index af674c83..0bcf66f1 100644
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr-25.inc
@@ -14,19 +14,10 @@ LICENSE = "MIT"
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-freedreno-don-t-encode-build-path-into-binaries.patch \
-"
-
-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() {
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
deleted file mode 100644
index 2c20a538..00000000
--- a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_24.0.1.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-# PowerVR Graphics require several patches that have not made their way
-# upstream yet. This allows us to build the shims we need without completely
-# clobbering mesa.
-
-require recipes-graphics/mesa/mesa-pvr-24.inc
-
-SUMMARY += " (with PowerVR for TI parts)"
-
-LIC_FILES_CHKSUM = "file://docs/license.rst;md5=63779ec98d78d823a9dc533a0735ef10"
-
-BRANCH = "powervr/${PV}"
-
-SRC_URI = " \
- git://gitlab.freedesktop.org/StaticRocket/mesa.git;protocol=https;branch=${BRANCH} \
- file://0001-meson.build-check-for-all-linux-host_os-combinations.patch \
- file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
- file://0001-gallium-Fix-build-with-llvm-17.patch \
- file://0001-drisw-fix-build-without-dri3.patch \
- file://0002-glxext-don-t-try-zink-if-not-enabled-in-mesa.patch \
- file://0001-gallivm-Call-StringMapIterator-from-llvm-scope.patch \
- file://0001-Update-lp_bld_misc.cpp-to-support-llvm-19.patch \
- file://0001-gallivm-Fix-armhf-build-against-LLVM-22.patch \
-"
-
-SRCREV = "7c82c1eebc67f5a62a347a84d42fe795cf7f523b"
-PV = "24.0.1"
-PR = "r1"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', ',pvr', '', d)}"
-GALLIUMDRIVERS:append = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-km', ',sgx', '', d)}"
-
-VULKAN_DRIVERS:append = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', ',pvr', '', d)}"
-
-do_install:append () {
- # remove pvr custom pkgconfig
- rm -rf ${D}${datadir}/pkgconfig
-}
-
-FILES:${PN}-dev += "${datadir}/mesa/wayland-drm.xml"
-FILES:mesa-vulkan-drivers += "${libdir}/libpvr_mesa_wsi.so"
-
-RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
diff --git a/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_25.2.8.bb b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_25.2.8.bb
new file mode 100644
index 00000000..44becc66
--- /dev/null
+++ b/meta-ti-bsp/recipes-graphics/mesa/mesa-pvr_25.2.8.bb
@@ -0,0 +1,60 @@
+# PowerVR Graphics require several patches that have not made their way
+# upstream yet. This allows us to build the shims we need without completely
+# clobbering mesa.
+
+require recipes-graphics/mesa/mesa-pvr-25.inc
+
+SUMMARY += " (with PowerVR for TI parts)"
+
+LIC_FILES_CHKSUM = "file://docs/license.rst;md5=ffe678546d4337b732cfd12262e6af11"
+
+BRANCH = "powervr/${PV}"
+
+SRC_URI = "git://github.com/TexasInstruments/mesa.git;protocol=https;branch=${BRANCH} \
+ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch"
+
+SRCREV = "0cb5bad52580f156b02125f4c7121ca7198e1489"
+PV = "25.2.8"
+PR = "r1"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+GALLIUMDRIVERS:append = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', ',pvr', '', d)}"
+GALLIUMDRIVERS:append = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-sgx-ddk-km', ',sgx', '', d)}"
+
+VULKAN_DRIVERS:append = "${@bb.utils.contains('PREFERRED_PROVIDER_virtual/gpudriver', 'ti-img-rogue-driver', ',pvr', '', d)}"
+
+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', 'opencl', 'opencl libclc gallium-llvm', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'zink', '', d)} \
+ xmlconfig \
+"
+
+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 \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+do_install:append () {
+ # remove pvr custom pkgconfig
+ rm -rf ${D}${datadir}/pkgconfig
+}
+
+FILES:${PN}-dev += "${datadir}/mesa/wayland-drm.xml"
+FILES:mesa-vulkan-drivers += "${libdir}/libpvr_mesa_wsi.so"
+
+RRECOMMENDS:mesa-megadriver:append:class-target = " ${@d.getVar('PREFERRED_PROVIDER_virtual/gpudriver')}"
+
+INSANE_SKIP = "32bit-time"
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25
2026-06-23 15:03 [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25 a-christidis
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core a-christidis
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 2/2] mesa-pvr: Migrate mesa from v24.0.1 -> v25.2.8 a-christidis
@ 2026-06-23 15:05 ` PRC Automation
2 siblings, 0 replies; 8+ messages in thread
From: PRC Automation @ 2026-06-23 15:05 UTC (permalink / raw)
To: a-christidis; +Cc: reatmon, denys, meta-ti
meta-ti / na / 20260623150317.1127756-1-a-christidis
PRC Results: FAIL
=========================================================
check-yocto-patches: FAIL
=========================================================
Patches
----------------------------------------
FAIL - [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core
ERROR: Missing License-Update for change in LIC_FILES_CHKSUM. (LICENSE-UPDATE-1)
patch
WARN: Revised patch missing a comment. (REVISION-1)
patch
For details on the above errors/warnings visit: https://lists.yoctoproject.org/g/meta-ti/wiki/40887
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core a-christidis
@ 2026-06-23 15:43 ` Andrew Davis
2026-06-23 15:45 ` Antonios Christidis
0 siblings, 1 reply; 8+ messages in thread
From: Andrew Davis @ 2026-06-23 15:43 UTC (permalink / raw)
To: a-christidis, reatmon, denys; +Cc: meta-ti
On 6/23/26 10:03 AM, Antonios Christidis via lists.yoctoproject.org wrote:
> From: Antonios Christidis <a-christidis@ti.com>
>
> 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
> - 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 <a-christidis@ti.com>
> ---
> .../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)"
>
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#20055): https://lists.yoctoproject.org/g/meta-ti/message/20055
> Mute This Topic: https://lists.yoctoproject.org/mt/119942303/3619733
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [afd@ti.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core
2026-06-23 15:43 ` Andrew Davis
@ 2026-06-23 15:45 ` Antonios Christidis
2026-06-23 15:56 ` Denys Dmytriyenko
0 siblings, 1 reply; 8+ messages in thread
From: Antonios Christidis @ 2026-06-23 15:45 UTC (permalink / raw)
To: Andrew Davis, reatmon, denys; +Cc: meta-ti
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 <a-christidis@ti.com>
>>
>> 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.
>> - 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 <a-christidis@ti.com>
>> ---
>> .../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)"
>>
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#20055):
>> https://lists.yoctoproject.org/g/meta-ti/message/20055
>> Mute This Topic: https://lists.yoctoproject.org/mt/119942303/3619733
>> Group Owner: meta-ti+owner@lists.yoctoproject.org
>> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [afd@ti.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core
2026-06-23 15:45 ` Antonios Christidis
@ 2026-06-23 15:56 ` Denys Dmytriyenko
2026-06-23 16:11 ` Ryan Eatmon
0 siblings, 1 reply; 8+ messages in thread
From: Denys Dmytriyenko @ 2026-06-23 15:56 UTC (permalink / raw)
To: a-christidis; +Cc: Andrew Davis, reatmon, denys, meta-ti
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 <a-christidis@ti.com>
> >>
> >>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?
> >>- 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 <a-christidis@ti.com>
> >>---
> >> .../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)"
> >>
> >>
> >>
> >>
> >>
> >
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core
2026-06-23 15:56 ` Denys Dmytriyenko
@ 2026-06-23 16:11 ` Ryan Eatmon
0 siblings, 0 replies; 8+ messages in thread
From: Ryan Eatmon @ 2026-06-23 16:11 UTC (permalink / raw)
To: Denys Dmytriyenko, a-christidis; +Cc: Andrew Davis, denys, meta-ti
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 <a-christidis@ti.com>
>>>>
>>>> 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 <a-christidis@ti.com>
>>>> ---
>>>> .../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 reatmon@ti.com
-----------------------------------------
Texas Instruments, Inc. - LCPD - MGTS
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-06-23 16:11 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-23 15:03 [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25 a-christidis
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 1/2] mesa-pvr: Add versioned mesa.inc copies from oe-core a-christidis
2026-06-23 15:43 ` Andrew Davis
2026-06-23 15:45 ` Antonios Christidis
2026-06-23 15:56 ` Denys Dmytriyenko
2026-06-23 16:11 ` Ryan Eatmon
2026-06-23 15:03 ` [meta-ti][master/wrynose][PATCH v3 2/2] mesa-pvr: Migrate mesa from v24.0.1 -> v25.2.8 a-christidis
2026-06-23 15:05 ` [meta-ti][master/wrynose][PATH v3 0/2] mesa-pvr v24 -> v25 PRC Automation
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.