Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pkgs/development/libraries/mesa/common.nix
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
# nix build .#legacyPackages.x86_64-darwin.mesa .#legacyPackages.aarch64-darwin.mesa
rec {
pname = "mesa";
version = "25.3.0";
version = "25.2.6";

src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "mesa";
repo = "mesa";
rev = "mesa-${version}";
hash = "sha256-MviXDRAbCEXM9dIzD94/CM0bjlF4zCJUVE91Xst/uII=";
hash = "sha256-erfvNR1Yor3k8gVVClyiBJsgyaOv7BMFd1NSgieTY5I=";
};

meta = {
Expand Down
6 changes: 1 addition & 5 deletions pkgs/development/libraries/mesa/darwin.nix
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@ stdenv.mkDerivation {
meta
;

patches = [
# Backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38429
./fix-darwin-build.patch
];

outputs = [
"out"
"dev"
Expand Down Expand Up @@ -63,6 +58,7 @@ stdenv.mkDerivation {
"--sysconfdir=/etc"
"--datadir=${placeholder "out"}/share"
(lib.mesonEnable "glvnd" false)
(lib.mesonEnable "shared-glapi" true)
(lib.mesonEnable "llvm" true)
];

Expand Down
13 changes: 3 additions & 10 deletions pkgs/development/libraries/mesa/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
spirv-tools,
intltool,
jdupes,
libdisplay-info,
libdrm,
libgbm,
libglvnd,
Expand Down Expand Up @@ -69,18 +68,14 @@
"vc4" # Broadcom VC4 (Raspberry Pi 0-3)
"virgl" # QEMU virtualized GPU (aka VirGL)
"zink" # generic OpenGL over Vulkan, experimental
]
++ lib.optionals stdenv.hostPlatform.is64bit [
"ethosu" # ARM Ethos NPU, does not build on 32-bit
"rocket" # Rockchip NPU, probably horribly broken on 32-bit
],
vulkanDrivers ? [
"amd" # AMD (aka RADV)
"asahi" # Apple AGX
"broadcom" # Broadcom VC5 (Raspberry Pi 4, aka V3D)
"freedreno" # Qualcomm Adreno (all Qualcomm SoCs)
"gfxstream" # Android virtualized GPU
"imagination" # PowerVR Rogue (currently N/A)
"imagination-experimental" # PowerVR Rogue (currently N/A)
"intel_hasvk" # Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code)
"intel" # new Intel (aka ANV)
"microsoft-experimental" # WSL virtualized GPU (aka DZN/Dozen)
Expand All @@ -101,7 +96,6 @@
"wayland"
],
vulkanLayers ? [
"anti-lag"
"device-select"
"intel-nullhw"
"overlay"
Expand Down Expand Up @@ -150,7 +144,8 @@ stdenv.mkDerivation {

patches = [
./opencl.patch
./musl.patch
# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37027
./gallivm-llvm-21.patch
];

postPatch = ''
Expand Down Expand Up @@ -261,7 +256,6 @@ stdenv.mkDerivation {
elfutils
expat
spirv-tools
libdisplay-info
libdrm
libgbm
libglvnd
Expand Down Expand Up @@ -341,7 +335,6 @@ stdenv.mkDerivation {
moveToOutput bin/panfrost_compile $cross_tools
moveToOutput bin/panfrost_texfeatures $cross_tools
moveToOutput bin/panfrostdump $cross_tools
moveToOutput bin/pco_clc $cross_tools
moveToOutput bin/vtn_bindgen2 $cross_tools

moveToOutput "lib/lib*OpenCL*" $opencl
Expand Down
34 changes: 0 additions & 34 deletions pkgs/development/libraries/mesa/fix-darwin-build.patch

This file was deleted.

53 changes: 53 additions & 0 deletions pkgs/development/libraries/mesa/gallivm-llvm-21.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
From eca19331d94005485de5246cfa87a21621486cd8 Mon Sep 17 00:00:00 2001
From: no92 <no92.mail@gmail.com>
Date: Wed, 27 Aug 2025 16:02:31 +0200
Subject: [PATCH] gallivm: support LLVM 21

LLVM PR#146819 changed the signature of `setObjectLinkingLayerCreator`,
dropping the Triple argument. The PR was first included in the LLVM 21
series, and the new signature is gated behind a version check for that.

`LLVMOrcThreadSafeContextGetContext` was removed in LLVM commit b18e5b6,
and the ORC examples in the LLVM tree seem to just create a context
instead, which we replicate here.

With this commit, mesa successfully builds the llvmpipe gallium driver
on riscv64 with LLVM 21.1.0.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13785
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13852

Reviewed-by: David Heidelberg <david@ixit.cz>
---
src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp
index 3d2b8cf81bc0c..0be69b02b6eef 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp
+++ b/src/gallium/auxiliary/gallivm/lp_bld_init_orc.cpp
@@ -340,7 +340,12 @@ LPJit::LPJit() :jit_dylib_count(0) {
.setJITTargetMachineBuilder(std::move(JTMB))
#ifdef USE_JITLINK
.setObjectLinkingLayerCreator(
+#if LLVM_VERSION_MAJOR >= 21
+ /* LLVM 21 removed the Triple argument */
+ [&](ExecutionSession &ES) {
+#else
[&](ExecutionSession &ES, const llvm::Triple &TT) {
+#endif
return std::make_unique<ObjectLinkingLayer>(
ES, ExitOnErr(llvm::jitlink::InProcessMemoryManager::Create()));
})
@@ -552,7 +557,7 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name,
gallivm->cache = cache;

gallivm->_ts_context = context->ref;
- gallivm->context = LLVMOrcThreadSafeContextGetContext(context->ref);
+ gallivm->context = LLVMContextCreate();

gallivm->module_name = LPJit::get_unique_name(name);
gallivm->module = LLVMModuleCreateWithNameInContext(gallivm->module_name,
--
GitLab

39 changes: 0 additions & 39 deletions pkgs/development/libraries/mesa/musl.patch

This file was deleted.

Loading