Skip to content

Instantly share code, notes, and snippets.

@CajuM
Created September 3, 2020 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CajuM/86b867aa73eb85ab997cca73c8b9416b to your computer and use it in GitHub Desktop.
Save CajuM/86b867aa73eb85ab997cca73c8b9416b to your computer and use it in GitHub Desktop.
diff --git a/pkgs/development/compilers/glslang/default.nix b/pkgs/development/compilers/glslang/default.nix
index dee3f488ecc..560c37a7752 100644
--- a/pkgs/development/compilers/glslang/default.nix
+++ b/pkgs/development/compilers/glslang/default.nix
@@ -26,21 +26,6 @@ stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake python3 bison jq ];
enableParallelBuilding = true;
- postPatch = ''
- cp --no-preserve=mode -r "${spirv-tools.src}" External/spirv-tools
- ln -s "${spirv-headers.src}" External/spirv-tools/external/spirv-headers
- '';
-
- # Ensure spirv-headers and spirv-tools match exactly to what is expected
- preConfigure = ''
- HEADERS_COMMIT=$(jq -r < known_good.json '.commits|map(select(.name=="spirv-tools/external/spirv-headers"))[0].commit')
- TOOLS_COMMIT=$(jq -r < known_good.json '.commits|map(select(.name=="spirv-tools"))[0].commit')
- if [ "$HEADERS_COMMIT" != "${spirv-headers.src.rev}" ] || [ "$TOOLS_COMMIT" != "${spirv-tools.src.rev}" ]; then
- echo "ERROR: spirv-tools commits do not match expected versions: expected tools at $TOOLS_COMMIT, headers at $HEADERS_COMMIT";
- exit 1;
- fi
- '';
-
meta = with stdenv.lib; {
inherit (src.meta) homepage;
description = "Khronos reference front-end for GLSL and ESSL";
diff --git a/pkgs/development/compilers/shaderc/default.nix b/pkgs/development/compilers/shaderc/default.nix
index 6a0c7ded4b9..02e3ad2930f 100644
--- a/pkgs/development/compilers/shaderc/default.nix
+++ b/pkgs/development/compilers/shaderc/default.nix
@@ -1,31 +1,13 @@
-{ stdenv, fetchFromGitHub, cmake, python3 }:
+{ stdenv, fetchFromGitHub, cmake, python3, glslang
+, spirv-tools, spirv-headers }:
# Like many google projects, shaderc doesn't gracefully support separately compiled dependencies, so we can't easily use
# the versions of glslang and spirv-tools used by vulkan-loader. Exact revisions are taken from
# https://github.com/google/shaderc/blob/known-good/known_good.json
# Future work: extract and fetch all revisions automatically based on a revision of shaderc's known-good branch.
-let
- glslang = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "glslang";
- rev = "3ee5f2f1d3316e228916788b300d786bb574d337";
- sha256 = "1l5h9d92mzd35pgs0wibqfg7vbl771lwnvdlcsyhf6999khn5dzv";
- };
- spirv-tools = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "SPIRV-Tools";
- rev = "b63f0e5ed3e818870968ebf6af73317127fd07b0";
- sha256 = "1chv30azfp76nha428ivg4ixrij6d8pxj5kn3jam87gmkmgc9zhm";
- };
- spirv-headers = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "SPIRV-Headers";
- rev = "979924c8bc839e4cb1b69d03d48398551f369ce7";
- sha256 = "07vyjlblpm4zhfds612h86lnz0qvrj5qqw5z2zzfa3m9fax7cm85";
- };
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
pname = "shaderc";
- version = "2020.2";
+ version = "2020.0";
outputs = [ "out" "lib" "bin" "dev" "static" ];
@@ -33,22 +15,32 @@ in stdenv.mkDerivation rec {
owner = "google";
repo = "shaderc";
rev = "v${version}";
- sha256 = "1sxz8872x3rdlrhmbn83r1vniq4j51jnk0ka3447fq68il4myf1w";
+ sha256 = "1kqqvsvib01bsmfbdy3fbwwpvkcdlfb6k71kjvzb3crql7w0rxff";
};
- patchPhase = ''
- cp -r --no-preserve=mode ${glslang} third_party/glslang
- cp -r --no-preserve=mode ${spirv-tools} third_party/spirv-tools
- ln -s ${spirv-headers} third_party/spirv-tools/external/spirv-headers
- '';
+ nativeBuildInputs = [ cmake python3 spirv-headers ];
- nativeBuildInputs = [ cmake python3 ];
+ buildInputs = [ spirv-tools glslang ];
+
+ postPatch = ''
+ sed '/examples/d;/third_party/d' -i CMakeLists.txt
+ sed '/build-version/d' -i glslc/CMakeLists.txt
+ sed -i 's/HLSL glslang/glslang HLSL/g' glslc/CMakeLists.txt
+
+ cat << EOF > glslc/src/build-version.inc
+ "${version}\\n"
+ "${spirv-tools.version}\\n"
+ "${glslang.version}\\n"
+ EOF
+ '';
postInstall = ''
moveToOutput "lib/*.a" $static
'';
- cmakeFlags = [ "-DSHADERC_SKIP_TESTS=ON" ];
+ cmakeFlags = [
+ "-DSHADERC_SKIP_TESTS=ON"
+ ];
meta = with stdenv.lib; {
inherit (src.meta) homepage;
diff --git a/pkgs/development/libraries/spirv-headers/default.nix b/pkgs/development/libraries/spirv-headers/default.nix
index 79b8e7c2dda..b99142c262d 100644
--- a/pkgs/development/libraries/spirv-headers/default.nix
+++ b/pkgs/development/libraries/spirv-headers/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "spirv-headers";
- version = "1.5.3";
+ version = "1.5.3.reservations1";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "SPIRV-Headers";
rev = version;
- sha256 = "069sivqajp7z4p44lmrz23lvf237xpkjxd4lzrg27836pwqcz9bj";
+ sha256 = "17h5cn4dyw8ixp1cpw8vf1z90m0fn1hhlvh0iycmknccbb1z34q7";
};
nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/vulkan-headers/default.nix b/pkgs/development/libraries/vulkan-headers/default.nix
index 317a5059aec..bf0de0946e0 100644
--- a/pkgs/development/libraries/vulkan-headers/default.nix
+++ b/pkgs/development/libraries/vulkan-headers/default.nix
@@ -1,15 +1,15 @@
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
pname = "vulkan-headers";
- version = "1.2.141.0";
+ version = "1.2.152";
nativeBuildInputs = [ cmake ];
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Headers";
- rev = "sdk-${version}";
- sha256 = "10nmx6y4llllfcczyfz76amd0vkqv09dj952d19zkzmmgcval7zq";
+ rev = "v${version}";
+ sha256 = "1innfbmdx6x55zgi23b8jskj910ywjbdg0f2b5ngbgyzflqvhyjc";
};
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index fdf1a725559..c3b8eaa5b05 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "vulkan-loader";
- version = "1.2.141.0";
+ version = "1.2.151";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Loader";
- rev = "sdk-${version}";
- sha256 = "10fyg71dza6qakz5zdchccfn0zcr8b1zpfi2rqir6jpzcbi28kcj";
+ rev = "v${version}";
+ sha256 = "0yybynb30lya4c4bd8dbsxakr027fvm8vhkv14kxm2026gw4d9iv";
};
nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/pkgs/development/tools/spirv-tools/default.nix b/pkgs/development/tools/spirv-tools/default.nix
index bac10d24442..2259caf5de5 100644
--- a/pkgs/development/tools/spirv-tools/default.nix
+++ b/pkgs/development/tools/spirv-tools/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, cmake, python3, spirv-headers }:
let
# Update spirv-headers rev in lockstep according to DEPs file
- version = "2020.2";
+ version = "2020.4";
in
stdenv.mkDerivation rec {
@@ -12,13 +12,16 @@ stdenv.mkDerivation rec {
owner = "KhronosGroup";
repo = "SPIRV-Tools";
rev = "v${version}";
- sha256 = "00b7xgyrcb2qq63pp3cnw5q1xqx2d9rfn65lai6n6r89s1vh3vg6";
+ sha256 = "16as0337iwhz3i3xfgccfygqq25az2fwz4vnc5plv136rq6yn80l";
};
enableParallelBuilding = true;
nativeBuildInputs = [ cmake python3 ];
- cmakeFlags = [ "-DSPIRV-Headers_SOURCE_DIR=${spirv-headers.src}" ];
+ cmakeFlags = [
+ "-DSPIRV-Headers_SOURCE_DIR=${spirv-headers.src}"
+ "-DBUILD_SHARED_LIBS=ON"
+ ];
meta = with stdenv.lib; {
inherit (src.meta) homepage;
diff --git a/pkgs/development/tools/vulkan-validation-layers/default.nix b/pkgs/development/tools/vulkan-validation-layers/default.nix
index b42a9e8caf8..3190abe2454 100644
--- a/pkgs/development/tools/vulkan-validation-layers/default.nix
+++ b/pkgs/development/tools/vulkan-validation-layers/default.nix
@@ -1,19 +1,20 @@
{ stdenv, fetchFromGitHub, cmake, writeText, python3
, vulkan-headers, vulkan-loader, glslang, spirv-headers
-, pkgconfig, xlibsWrapper, libxcb, libXrandr, wayland }:
+, spirv-tools, pkgconfig, xlibsWrapper, libxcb, libXrandr
+, wayland }:
stdenv.mkDerivation rec {
pname = "vulkan-validation-layers";
- version = "1.2.141.0";
+ version = "1.2.151";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-ValidationLayers";
- rev = "sdk-${version}";
- sha256 = "1yfas7q122kx74nbjk3wxlyacysgncvlvq081a5dp238m88vkmbj";
+ rev = "v${version}";
+ sha256 = "0l17ba2gpqf55znlv3i8pklhsvn30w2235fhxy3ycpk1i2v7hm7d";
};
- nativeBuildInputs = [ pkgconfig cmake python3 spirv-headers ];
+ nativeBuildInputs = [ pkgconfig cmake python3 spirv-headers spirv-tools ];
buildInputs = [ vulkan-headers vulkan-loader libxcb libXrandr wayland ];
enableParallelBuilding = true;
@@ -21,6 +22,7 @@ stdenv.mkDerivation rec {
"-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}"
"-DGLSLANG_INSTALL_DIR=${glslang}"
"-DSPIRV_HEADERS_INSTALL_DIR=${spirv-headers}"
+ "-DSPIRV_TOOLS_INSTALL_DIR=${spirv-tools}"
];
# Help vulkan-loader find the validation layers
diff --git a/pkgs/games/quakespasm/vulkan.nix b/pkgs/games/quakespasm/vulkan.nix
index deca3bec9cc..0bb021104ec 100644
--- a/pkgs/games/quakespasm/vulkan.nix
+++ b/pkgs/games/quakespasm/vulkan.nix
@@ -1,4 +1,4 @@
-{ stdenv, SDL2, fetchFromGitHub, makeWrapper, gzip, libvorbis, libmad, vulkan-headers, vulkan-loader }:
+{ stdenv, SDL2, fetchFromGitHub, fetchpatch, makeWrapper, gzip, libvorbis, libmad, vulkan-headers, vulkan-loader }:
stdenv.mkDerivation rec {
pname = "vkquake";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
sha256 = "1ry861pk3z02hy7i0yi3xwmd1zma802qzcnlm09w6pslayd9rwbf";
};
+ patches = [
+ (fetchpatch {
+ name = "a869a22d9b51c68e57646fa20e4c40fc6db36760.patch";
+ url = "https://github.com/Novum/vkQuake/commit/a869a22d9b51c68e57646fa20e4c40fc6db36760.patch";
+ sha256 = "1yr9fzwq34yw1hnmsnz07y1db2q9hrpxaig7p1krd56kfiqnbbkr";
+ })
+ ];
+
+ patchFlags = [ "-p2" ];
+
sourceRoot = "source/Quake";
nativeBuildInputs = [
diff --git a/pkgs/misc/emulators/wine/vkd3d.nix b/pkgs/misc/emulators/wine/vkd3d.nix
index 082eb0b90c6..a6affbe7838 100644
--- a/pkgs/misc/emulators/wine/vkd3d.nix
+++ b/pkgs/misc/emulators/wine/vkd3d.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, vulkan-headers, spirv-headers, vulkan-loader }:
+{ stdenv, fetchurl, fetchpatch, vulkan-headers, spirv-headers, vulkan-loader }:
#TODO: MoltenVK
#TODO: unstable
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
sha256 = "1dkayp95g1691w7n2yn1q9y7klq5xa921dgmn9a5vil0rihxqnj9";
};
+ patches = [
+ (fetchpatch {
+ name = "vkd3d-1.1-Fix-build.patch";
+ url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/app-emulation/vkd3d/files/vkd3d-1.1-Fix-build.patch";
+ sha256 = "0kxq8hpyl55rx5aqnfk0zmx0vfc508sfn95kzdzfyabl7cxc0h9d";
+ })
+ ];
+
buildInputs = [ vulkan-headers spirv-headers vulkan-loader ];
enableParallelBuilding = true;
diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix
index 9f7578989a9..0da8d4ab7b8 100644
--- a/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
pname = "vulkan-tools";
- version = "1.2.141.0";
+ version = "1.2.151";
src = fetchFromGitHub {
owner = "KhronosGroup";
repo = "Vulkan-Tools";
- rev = "sdk-${version}";
- sha256 = "1ch56ihm7rmilipfyc4i4ww7l6i20fb3qikkpm1ch43kzn42zjaw";
+ rev = "v${version}";
+ sha256 = "1wpb7z87b522kq3prkax83372858h8aaqwk9svbsm4m3b2gcbjbw";
};
nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 14de1d8611d..305d7229f9e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -9015,24 +9015,7 @@ in
dotnetPackages = recurseIntoAttrs (callPackage ./dotnet-packages.nix {});
- glslang = callPackage ../development/compilers/glslang {
- spirv-tools = spirv-tools.overrideAttrs (_: {
- src = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "SPIRV-Tools";
- rev = "fd8e130510a6b002b28eee5885a9505040a9bdc9";
- sha256 = "00b7xgyrcb2qq63pp3cnw5q1xqx2d9rfn65lai6n6r89s1vh3vg6";
- };
- });
- spirv-headers = spirv-headers.overrideAttrs (_: {
- src = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "SPIRV-Headers";
- rev = "f8bf11a0253a32375c32cad92c841237b96696c0";
- sha256 = "1znwjy02dl9rshqzl87rqsv9mfczw7gvwfhcirbl81idahgp4p6l";
- };
- });
- };
+ glslang = callPackage ../development/compilers/glslang { };
go_bootstrap = if stdenv.isAarch64 then
srcOnly {
@@ -15645,33 +15628,7 @@ in
vulkan-headers = callPackage ../development/libraries/vulkan-headers { };
vulkan-loader = callPackage ../development/libraries/vulkan-loader { };
vulkan-tools = callPackage ../tools/graphics/vulkan-tools { };
- vulkan-validation-layers = callPackage ../development/tools/vulkan-validation-layers {
- glslang = (glslang.override {
- spirv-tools = spirv-tools.overrideAttrs (_: {
- src = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "SPIRV-Tools";
- rev = "e128ab0d624ce7beb08eb9656bb260c597a46d0a";
- sha256 = "0jj8zrl3dh9fq71jc8msx3f3ifb2vjcb37nl0w4sa8sdhfff74pv";
- };
- });
- spirv-headers = spirv-tools.overrideAttrs (_: {
- src = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "SPIRV-Headers";
- rev = "ac638f1815425403e946d0ab78bac71d2bdbf3be";
- sha256 = "1lkhs7pxcrfkmiizcxl0w5ajx6swwjv7w3iq586ipgh571fc75gx";
- };
- });
- }).overrideAttrs (_: {
- src = fetchFromGitHub {
- owner = "KhronosGroup";
- repo = "glslang";
- rev = "e00d27c6d65b7d3e72506a311d7f053da4051295";
- sha256 = "00lzvzk613gpm1vsdxffmx52z3c52ijwvzk4sfhh95p71kdydhgv";
- };
- });
- };
+ vulkan-validation-layers = callPackage ../development/tools/vulkan-validation-layers { };
vtkWithQt5 = vtk.override { qtLib = qt5; };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment