mesa: update to 25.1.5
authorDaniel Golle <[email protected]>
Sun, 13 Jul 2025 01:45:48 +0000 (02:45 +0100)
committerDaniel Golle <[email protected]>
Thu, 17 Jul 2025 22:53:34 +0000 (23:53 +0100)
Support for off-screen rendering ("libOSMesa") has been dropped upstream.

In order to still be able to cross-compile the panfrost driver also on
non-Linux buildhosts, or Linux hosts without libdrm, a patch has been
applied.

This patch has also been submitted upstream via
https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36170

Signed-off-by: Daniel Golle <[email protected]>
libs/mesa/Makefile
libs/mesa/patches/100-use-llvm-subproject-vars.patch
libs/mesa/patches/200-panfrost-precomp.patch [new file with mode: 0644]

index 2d3b2f66442ed8ba8f006267c936be5f6626fc71..b7f580525a77355b125e765dc4cd9053d3f9abe7 100644 (file)
@@ -1,12 +1,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mesa
-PKG_VERSION:=25.0.5
+PKG_VERSION:=25.1.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=https://archive.mesa3d.org/
-PKG_HASH:=c0d245dea0aa4b49f74b3d474b16542e4a8799791cd33d676c69f650ad4378d0
+PKG_HASH:=3c4f6b10ff6ee950d0ec6ea733cc6e6d34c569454e3d39a9b276de9115a3b363
 
 PKG_MAINTAINER:=Daniel Golle <[email protected]>
 PKG_LICENSE:=BSD-3-Clause
@@ -149,7 +149,7 @@ endef
 
 define Package/libmesa-tegra
 $(call Package/libmesa/Default)
-  DEPENDS+=+libdrm-tegra @(aarch64||arm)
+  DEPENDS+=+libdrm-tegra @(aarch64||arm) @MESA_USE_LLVM
   TITLE+= (NVIDIA Tegra)
   VARIANT:=tegra
 endef
@@ -239,7 +239,7 @@ define Package/libmesa-panfrost
 $(call Package/libmesa/Default)
   TITLE+= (ARM Mali Midgard and later)
   VARIANT:=panfrost
-  DEPENDS+=@(aarch64||arm)
+  DEPENDS+=@(aarch64||arm) @MESA_USE_LLVM
 endef
 
 define Package/libmesa-panfrost/description
@@ -348,46 +348,6 @@ define Package/libopencl-nouveau/description
 Mesa Clover OpenCL 1.1 library for nVidia GPUs.
 endef
 
-define Package/libosmesa/Default
-$(call Package/mesa/Default)
-  DEPENDS+=+libdrm +libstdcpp +zlib +libwayland +libzstd +wayland-protocols
-  TITLE+= off-screen rendering library
-endef
-
-define Package/libosmesa/description/Default
-Mesa's off-screen interface is used for rendering into user-allocated
-memory without any sort of window system or operating system
-dependencies. That is, the GL_FRONT colorbuffer is actually a buffer in
-main memory, rather than a window on your display.
-endef
-
-define Package/libosmesa-softpipe
-$(call Package/libosmesa/Default)
-  TITLE+= (Softpipe)
-  VARIANT:=softpipe
-  DEFAULT_VARIANT:=1
-endef
-
-define Package/libosmesa-softpipe/description
-$(call Package/libosmesa/description/Default)
-
-Softpipe - this is the reference Gallium software driver.
-endef
-
-define Package/libosmesa-llvmpipe
-$(call Package/libosmesa/Default)
-  TITLE+= (LLVMpipe)
-  DEPENDS+=@MESA_USE_LLVM
-  VARIANT:=llvmpipe
-endef
-
-define Package/libosmesa-llvmpipe/description
-$(call Package/libosmesa/description/Default)
-
-LLVMpipe - this is the high-performance Gallium LLVM driver.
-endef
-
-
 define Package/libvulkan-broadcom
 $(call Package/mesa/Default)
   DEPENDS+=+libdrm +libexpat +libstdcpp +libudev +libwayland +libzstd +zlib \
@@ -483,7 +443,7 @@ endef
 define Package/libvulkan-panfrost
 $(call Package/mesa/Default)
   DEPENDS+=+libdrm +libexpat +libstdcpp +libudev +libwayland +libzstd +zlib \
-          @(arm||aarch64)
+          @(arm||aarch64) @MESA_USE_LLVM
   TITLE+= ARM Mali Midgard/Bifrost/Valhall Vulkan driver
   VARIANT:=vulkan
 endef
@@ -551,8 +511,6 @@ MESON_HOST_ARGS += \
        -Dvalgrind=disabled \
        -Dgallium-drivers= \
        -Dvulkan-drivers= \
-       -Dosmesa=false \
-       -Dgallium-xa=disabled \
        -Dtools=nir \
        -Dllvm=enabled \
        -Dmesa-clc=enabled \
@@ -560,6 +518,7 @@ MESON_HOST_ARGS += \
        -Dshared-llvm=disabled \
        -Ddraw-use-llvm=false \
        -Dintel-clc=enabled \
+       -Dintel-elk=true \
        -Dstatic-libclc=all \
        -Dinstall-intel-clc=true \
        -Dinstall-mesa-clc=true \
@@ -732,11 +691,6 @@ define Package/libopencl/install
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libOpenCL.so* $(1)/usr/lib
 endef
 
-define Package/libosmesa/install
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libOSMesa.so* $(1)/usr/lib
-endef
-
 define Package/libvulkan-radeon/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libvulkan_radeon.so $(1)/usr/lib
@@ -810,9 +764,6 @@ Package/libmesa-llvmpipe/install = $(Package/libmesa/install)
 Package/libopencl-amd/install = $(Package/libopencl/install)
 Package/libopencl-nouveau/install = $(Package/libopencl/install)
 
-Package/libosmesa-softpipe/install = $(Package/libosmesa/install)
-Package/libosmesa-llvmpipe/install = $(Package/libosmesa/install)
-
 $(eval $(call BuildPackage,mesa3d))
 $(eval $(call BuildPackage,libmesa-amd))
 $(eval $(call BuildPackage,libmesa-intel))
@@ -828,8 +779,6 @@ $(eval $(call BuildPackage,libmesa-softpipe))
 $(eval $(call BuildPackage,libmesa-llvmpipe))
 $(eval $(call BuildPackage,libopencl-amd))
 $(eval $(call BuildPackage,libopencl-nouveau))
-$(eval $(call BuildPackage,libosmesa-softpipe))
-$(eval $(call BuildPackage,libosmesa-llvmpipe))
 $(eval $(call BuildPackage,libvulkan-broadcom))
 $(eval $(call BuildPackage,libvulkan-imagination))
 $(eval $(call BuildPackage,libvulkan-intel))
index b6b5cf7d8db8a349bf029e6d33e7e9d433ce6d77..188e03bc45575cd8a8739918f835f84495ef7bfb 100644 (file)
@@ -1,6 +1,6 @@
 --- a/meson.build
 +++ b/meson.build
-@@ -1782,21 +1782,26 @@ _llvm = get_option('llvm')
+@@ -1771,21 +1771,26 @@ _llvm = get_option('llvm')
  dep_llvm = null_dep
  with_llvm = false
  if _llvm.allowed()
@@ -42,7 +42,7 @@
  endif
  if with_llvm
    pre_args += '-DMESA_LLVM_VERSION_STRING="@0@"'.format(dep_llvm.version())
-@@ -1895,7 +1900,11 @@ endif
+@@ -1884,7 +1889,11 @@ endif
  
  dep_clang = null_dep
  if with_clc or with_gallium_clover
@@ -57,7 +57,7 @@
  
 --- a/src/compiler/clc/meson.build
 +++ b/src/compiler/clc/meson.build
-@@ -24,14 +24,14 @@ if not _shared_llvm
+@@ -25,14 +25,14 @@ if not _shared_llvm or \
  
    opencl_c_base_h = custom_target(
      'opencl-c-base.h',
@@ -76,7 +76,7 @@
    )
 --- a/src/gallium/frontends/clover/meson.build
 +++ b/src/gallium/frontends/clover/meson.build
-@@ -26,6 +26,12 @@ if with_opencl_icd
+@@ -25,6 +25,12 @@ if with_opencl_icd
    clover_cpp_args += '-DHAVE_CLOVER_ICD'
  endif
  
  libclllvm = static_library(
    'clllvm',
    files(
-@@ -44,7 +50,7 @@ libclllvm = static_library(
+@@ -43,7 +49,7 @@ libclllvm = static_library(
      clover_cpp_args,
      clover_opencl_cpp_args,
-     '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths(
+     '-DFALLBACK_CLANG_RESOURCE_DIR="@0@"'.format(join_paths(
 -      dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir'), 'clang',
 +      llvm_libdir, 'clang',
-       dep_llvm.version(), 'include',
+       dep_llvm.version()
      )),
    ],
 --- a/src/gallium/targets/opencl/meson.build
diff --git a/libs/mesa/patches/200-panfrost-precomp.patch b/libs/mesa/patches/200-panfrost-precomp.patch
new file mode 100644 (file)
index 0000000..cf9e813
--- /dev/null
@@ -0,0 +1,98 @@
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -87,7 +87,7 @@ endif
+ if with_imagination_vk
+   subdir('imagination')
+ endif
+-if with_gallium_panfrost or with_gallium_lima or with_panfrost_vk or with_tools.contains('panfrost')
++if with_drivers_clc or with_gallium_panfrost or with_gallium_lima or with_panfrost_vk or with_tools.contains('panfrost')
+   subdir('panfrost')
+ endif
+ if with_microsoft_clc or with_gallium_d3d12 or with_spirv_to_dxil or with_microsoft_vk
+--- a/src/panfrost/lib/meson.build
++++ b/src/panfrost/lib/meson.build
+@@ -3,7 +3,9 @@
+ # SPDX-License-Identifier: MIT
+ subdir('genxml')
+-subdir('kmod')
++if with_gallium_panfrost or with_panfrost_vk
++  subdir('kmod')
++endif
+ pixel_format_versions = ['5', '6', '7', '9', '10', '12', '13']
+ libpanfrost_pixel_format = []
+@@ -22,16 +24,14 @@ foreach ver : pixel_format_versions
+ endforeach
+ libpanfrost_per_arch = []
++libpanfrost_per_arch_files = [ 'pan_blend.c', 'pan_shader.c', 'pan_texture.c' ]
++if with_gallium_panfrost or with_panfrost_vk
++  libpanfrost_per_arch_files += 'pan_desc.c'
++endif
+ foreach ver : ['4', '5', '6', '7', '9', '10', '12', '13']
+   libpanfrost_per_arch += static_library(
+-    'pan-arch-v' + ver,
+-    [
+-      'pan_blend.c',
+-      'pan_desc.c',
+-      'pan_shader.c',
+-      'pan_texture.c',
+-    ],
++    'pan-arch-v' + ver, libpanfrost_per_arch_files,
+     include_directories : [inc_include, inc_src],
+     c_args : ['-DPAN_ARCH=' + ver],
+     gnu_symbol_visibility : 'hidden',
+@@ -63,10 +63,18 @@ libpanfrost_lib_files = files(
+   'pan_tiler.c',
+   'pan_layout.c',
+   'pan_scratch.c',
+-  'pan_props.c',
+   'pan_util.c',
+ )
++if with_gallium_panfrost or with_panfrost_vk
++  libpanfrost_lib_files += files('pan_props.c')
++endif
++
++libpanfrost_link_with = [libpanfrost_pixel_format, libpanfrost_per_arch]
++if with_gallium_panfrost or with_panfrost_vk
++  libpanfrost_link_with += libpankmod_lib
++endif
++
+ libpanfrost_lib = static_library(
+   'panfrost_lib',
+   [libpanfrost_lib_files, pan_packers],
+@@ -75,13 +83,18 @@ libpanfrost_lib = static_library(
+   gnu_symbol_visibility : 'hidden',
+   dependencies: [dep_libdrm, idep_nir, idep_mesautil],
+   build_by_default : false,
+-  link_with: [libpanfrost_pixel_format, libpanfrost_per_arch, libpankmod_lib],
++  link_with: libpanfrost_link_with,
+ )
++libpanfrost_dependencies = [deps_for_libpanfrost, idep_nir]
++if with_gallium_panfrost or with_panfrost_vk
++  libpanfrost_dependencies = libpankmod_dep
++endif
++
+ libpanfrost_dep = declare_dependency(
+   link_with: [libpanfrost_lib, libpanfrost_decode, libpanfrost_midgard, libpanfrost_bifrost, libpanfrost_pixel_format, libpanfrost_per_arch],
+   include_directories: [inc_include, inc_src, inc_panfrost],
+-  dependencies: [deps_for_libpanfrost, libpankmod_dep, idep_nir],
++  dependencies: libpanfrost_dependencies,
+ )
+ if with_tests
+--- a/src/panfrost/meson.build
++++ b/src/panfrost/meson.build
+@@ -15,7 +15,7 @@ subdir('util')
+ subdir('midgard')
+ subdir('compiler')
+-if with_gallium_panfrost or with_panfrost_vk or with_tools.contains('panfrost')
++if with_drivers_clc or with_gallium_panfrost or with_panfrost_vk or with_tools.contains('panfrost')
+    subdir('lib')
+    subdir('clc')
+ endif