From 6f001d6faba6a08ab9bcd06fcd4c60148c14d665 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:04:19 +0200 Subject: [PATCH 01/11] spirv-llvm-translator: add llvm 21 support --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index e90a2fa4bcf0..58774bb5fe64 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -18,6 +18,11 @@ let # ROCm, if actively updated will always be at the latest version versions = { + "21" = rec { + version = "21.1.0"; + rev = "v${version}"; + hash = "sha256-kk8BbPl/UBW1gaO/cuOQ9OsiNTEk0TkvRDLKUAh6exk="; + }; "19" = rec { version = "19.1.6"; rev = "v${version}"; From 129b804005ca320f551b086a7ec592cb8272dc7e Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:05:09 +0200 Subject: [PATCH 02/11] spirv-llvm-translator: add llvm 20 support --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 58774bb5fe64..012f1b801ee6 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -23,6 +23,11 @@ let rev = "v${version}"; hash = "sha256-kk8BbPl/UBW1gaO/cuOQ9OsiNTEk0TkvRDLKUAh6exk="; }; + "20" = rec { + version = "20.1.5"; + rev = "v${version}"; + hash = "sha256-GdlC/Vl61nTNdua2s+CW2YOvkSKK6MNOvBc/393iths="; + }; "19" = rec { version = "19.1.6"; rev = "v${version}"; From 4a1519ed7ab5cc0f0632a45ba39261923b17afb5 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:05:36 +0200 Subject: [PATCH 03/11] spirv-llvm-translator: 19.1.6 -> 19.1.10 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 012f1b801ee6..bc535528bd78 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -29,9 +29,9 @@ let hash = "sha256-GdlC/Vl61nTNdua2s+CW2YOvkSKK6MNOvBc/393iths="; }; "19" = rec { - version = "19.1.6"; + version = "19.1.10"; rev = "v${version}"; - hash = "sha256-mUvDF5y+cBnqUaHjyiiE8cJGH5MfQMqGFy6bYv9vCVY="; + hash = "sha256-VgA47AGMnOKYNeW95nxJZzmKnYK8D/9okgssPnPqXXI="; }; "18" = rec { version = "18.1.11"; From c70e9730b7e7bb82d66c7d919a0eed7a64e8ab5f Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:05:57 +0200 Subject: [PATCH 04/11] spirv-llvm-translator: 18.1.11 -> 18.1.15 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index bc535528bd78..4562fb115d30 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -34,9 +34,9 @@ let hash = "sha256-VgA47AGMnOKYNeW95nxJZzmKnYK8D/9okgssPnPqXXI="; }; "18" = rec { - version = "18.1.11"; + version = "18.1.15"; rev = "v${version}"; - hash = "sha256-VoALyFqShKL3bpeoOIdKoseNfDWiRE+j0ppHapXOmEU="; + hash = "sha256-rt3RTZut41uDEh0YmpOzH3sOezeEVWtAIGMKCHLSJBw="; }; "17" = rec { version = "17.0.11"; From 9d9285c35c63ded2216d30ac529bd65dfcde3f77 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:06:36 +0200 Subject: [PATCH 05/11] spirv-llvm-translator: 17.0.11 -> 17.0.15 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 4562fb115d30..1cfa9b4fe261 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -39,9 +39,9 @@ let hash = "sha256-rt3RTZut41uDEh0YmpOzH3sOezeEVWtAIGMKCHLSJBw="; }; "17" = rec { - version = "17.0.11"; + version = "17.0.15"; rev = "v${version}"; - hash = "sha256-Ba4GZS7Rc93Fphj2xaBZ3AqwXvxB9UU0gzPNoDEoaQM="; + hash = "sha256-ETpTQYMMApECDfuRY87HrO/PUxZ13x9dBRJ3ychslUI="; }; "16" = rec { version = "16.0.11"; From 44c95706464ee5859e1bf14d5f61fa4a00e86081 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:06:51 +0200 Subject: [PATCH 06/11] spirv-llvm-translator: 16.0.11 -> 16.0.15 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 1cfa9b4fe261..b466d783132e 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -44,9 +44,9 @@ let hash = "sha256-ETpTQYMMApECDfuRY87HrO/PUxZ13x9dBRJ3ychslUI="; }; "16" = rec { - version = "16.0.11"; + version = "16.0.15"; rev = "v${version}"; - hash = "sha256-PI4cT/PGqpaF5SysOTrEE4D+OcIUsIOMzww4CRPtwBQ="; + hash = "sha256-30i73tGl+1KlP92XA0uxdMTydd9EtaQ4SZ0W1kdm1fQ="; }; "15" = rec { version = "15.0.13"; From 12f5b3d0fbc2d6d0068b25bd7d6d169707d11441 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:07:08 +0200 Subject: [PATCH 07/11] spirv-llvm-translator: 15.0.13 -> 15.0.15 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index b466d783132e..5b24925338e5 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -49,9 +49,9 @@ let hash = "sha256-30i73tGl+1KlP92XA0uxdMTydd9EtaQ4SZ0W1kdm1fQ="; }; "15" = rec { - version = "15.0.13"; + version = "15.0.15"; rev = "v${version}"; - hash = "sha256-RnGbBHUUGjIBcakQJO4nAm3/oIrQ8nkx+BC8Evw6Jmc="; + hash = "sha256-kFVDS+qwoG1AXrZ8LytoiLVbZkTGR9sO+Wrq3VGgWNQ="; }; "14" = { version = "14.0.11+unstable-2025-01-28"; From 3bb9bd5d4efbe38a41973bdadb75c7921735e87b Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Fri, 8 Aug 2025 14:07:31 +0200 Subject: [PATCH 08/11] spirv-llvm-translator: 14.0.11+unstable-2025-01-28 -> 14.0.14 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 5b24925338e5..a4ebb2c052cc 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -53,10 +53,10 @@ let rev = "v${version}"; hash = "sha256-kFVDS+qwoG1AXrZ8LytoiLVbZkTGR9sO+Wrq3VGgWNQ="; }; - "14" = { - version = "14.0.11+unstable-2025-01-28"; - rev = "9df26b6af308cb834a4013deb8094f386f29accd"; - hash = "sha256-8VRQwXFbLcYgHtWKs73yuTsy2kkCgYgPqD+W/GPy1BM="; + "14" = rec { + version = "14.0.14"; + rev = "v${version}"; + hash = "sha256-PW+5w93omLYPZXjRtU4BNY2ztZ86pcjgUQZkrktMq+4="; }; }; From 6f93cd7bfdfeb085caf5da1631a689b85f5a134b Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Tue, 12 Aug 2025 01:39:21 +0200 Subject: [PATCH 09/11] spirv-llvm-translator: remove ROCm special handling --- .../by-name/sp/spirv-llvm-translator/package.nix | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index a4ebb2c052cc..6626acc70df9 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -14,9 +14,7 @@ let llvmMajor = lib.versions.major llvm.version; - isROCm = lib.hasPrefix "rocm" llvm.pname; - # ROCm, if actively updated will always be at the latest version versions = { "21" = rec { version = "21.1.0"; @@ -60,9 +58,7 @@ let }; }; - branch = - versions."${if isROCm then "17" else llvmMajor}" - or (throw "Incompatible LLVM version ${llvmMajor}"); + branch = versions."${llvmMajor}" or (throw "Incompatible LLVM version ${llvmMajor}"); in stdenv.mkDerivation { pname = "SPIRV-LLVM-Translator"; @@ -86,20 +82,20 @@ stdenv.mkDerivation { nativeBuildInputs = [ pkg-config cmake - ] - ++ (if isROCm then [ llvm ] else [ llvm.dev ]); + llvm.dev + ]; buildInputs = [ spirv-headers spirv-tools - ] - ++ lib.optionals (!isROCm) [ llvm ]; + llvm + ]; nativeCheckInputs = [ lit ]; cmakeFlags = [ "-DLLVM_INCLUDE_TESTS=ON" - "-DLLVM_DIR=${(if isROCm then llvm else llvm.dev)}" + "-DLLVM_DIR=${llvm.dev}" "-DBUILD_SHARED_LIBS=YES" "-DLLVM_SPIRV_BUILD_EXTERNAL=YES" # RPATH of binary /nix/store/.../bin/llvm-spirv contains a forbidden reference to /build/ From 5e3cff9cb540fa808246d72f3e4faf2f9b884821 Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Tue, 12 Aug 2025 01:42:06 +0200 Subject: [PATCH 10/11] spirv-llvm-translator: pass BASE_LLVM_VERSION for LLVM 20 and 21 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 6626acc70df9..7fab99fbb4b6 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -102,7 +102,9 @@ stdenv.mkDerivation { "-DCMAKE_SKIP_BUILD_RPATH=ON" "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${spirv-headers.src}" ] - ++ lib.optional (llvmMajor == "19") "-DBASE_LLVM_VERSION=${lib.versions.majorMinor llvm.version}.0"; + ++ lib.optional ( + lib.toInt llvmMajor >= 19 + ) "-DBASE_LLVM_VERSION=${lib.versions.majorMinor llvm.version}.0"; # FIXME: CMake tries to run "/llvm-lit" which of course doesn't exist doCheck = false; From 9eaf6ae3682c63a461a86713cfba480d696d849e Mon Sep 17 00:00:00 2001 From: blenderfreaky Date: Tue, 12 Aug 2025 01:52:31 +0200 Subject: [PATCH 11/11] spirv-llvm-translator: mark as broken for LLVM 21 with SPIRV Headers 1.4.321 --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 7fab99fbb4b6..603c99035382 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -133,5 +133,13 @@ stdenv.mkDerivation { license = licenses.ncsa; platforms = platforms.unix; maintainers = with maintainers; [ gloaming ]; + + # For the LLVM 21 build some commits to spirv-headers + # are required that didn't make it into the final release of 1.4.321 + # For example: 9e3836d Add SPV_INTEL_function_variants + # Once spirv-headers are released again and updated on nixpkgs, + # this will switch over to the nixpkgs version and should no + # longer be broken. + broken = llvmMajor == "21" && lib.versionOlder spirv-headers.version "1.4.322"; }; }