Merge pull request #131299 from expipiplus1/vulkan-182

authored by

Sandro and committed by
GitHub
f374e8c8 2853d3c2

+112 -81
+2 -2
pkgs/development/libraries/vulkan-headers/default.nix
··· 1 1 { lib, stdenv, fetchFromGitHub, cmake }: 2 2 stdenv.mkDerivation rec { 3 3 pname = "vulkan-headers"; 4 - version = "1.2.162.0"; 4 + version = "1.2.182.0"; 5 5 6 6 nativeBuildInputs = [ cmake ]; 7 7 ··· 9 9 owner = "KhronosGroup"; 10 10 repo = "Vulkan-Headers"; 11 11 rev = "sdk-${version}"; 12 - sha256 = "057c49w1138l02v9gqsk1z8wdz0iilp96jblnldycwm9jc1a1ipq"; 12 + sha256 = "03j0kzq2qxhy0y82l10m8am26zrms2sjrdb1dcbpv9zh5vkxhcla"; 13 13 }; 14 14 15 15 meta = with lib; {
+12 -12
pkgs/development/libraries/vulkan-loader/default.nix
··· 1 - { lib, stdenv, fetchFromGitHub, cmake, python3, vulkan-headers, pkg-config 2 - , xlibsWrapper, libxcb, libXrandr, libXext, wayland, addOpenGLRunpath }: 1 + { lib, stdenv, fetchFromGitHub, cmake, pkg-config, libX11, libxcb 2 + , libXrandr, wayland, vulkan-headers, addOpenGLRunpath }: 3 3 4 4 stdenv.mkDerivation rec { 5 5 pname = "vulkan-loader"; 6 - version = "1.2.162.0"; 6 + version = "1.2.182.0"; 7 7 8 - src = fetchFromGitHub { 9 - owner = "KhronosGroup"; 10 - repo = "Vulkan-Loader"; 11 - rev = "sdk-${version}"; 12 - sha256 = "0w9i2pliw4ccmjyfzff4i2f3hxwsfd54jg7ahv2v634qmx59bsbi"; 13 - }; 8 + src = (assert version == vulkan-headers.version; 9 + fetchFromGitHub { 10 + owner = "KhronosGroup"; 11 + repo = "Vulkan-Loader"; 12 + rev = "sdk-${version}"; 13 + sha256 = "0gmr9q3a6s8xvaa74fs9zbi9c305i2b3rx768qvl79nhbdj8nc02"; 14 + }); 14 15 15 - nativeBuildInputs = [ pkg-config cmake ]; 16 - buildInputs = [ python3 xlibsWrapper libxcb libXrandr libXext wayland ]; 16 + nativeBuildInputs = [ cmake pkg-config ]; 17 + buildInputs = [ libX11 libxcb libXrandr vulkan-headers wayland ]; 17 18 18 19 cmakeFlags = [ 19 20 "-DSYSCONFDIR=${addOpenGLRunpath.driverLink}/share" 20 - "-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}" 21 21 "-DCMAKE_INSTALL_INCLUDEDIR=${vulkan-headers}/include" 22 22 ]; 23 23
+46 -38
pkgs/development/tools/vulkan-validation-layers/default.nix
··· 1 - { lib, stdenv 1 + { lib 2 + , stdenv 2 3 , fetchFromGitHub 3 4 , cmake 4 - , writeText 5 - , python3 5 + , glslang 6 + , libX11 7 + , libxcb 8 + , libXrandr 6 9 , spirv-headers 7 10 , spirv-tools 8 11 , vulkan-headers 9 - , vulkan-loader 10 - , glslang 11 - , pkg-config 12 - , xlibsWrapper 13 - , libxcb 14 - , libXrandr 15 12 , wayland 16 13 }: 17 - # vulkan-validation-layers requires a custom glslang version, while glslang requires 18 - # custom versions for spirv-tools and spirv-headers. The git hashes required for all 19 - # of these deps is documented upstream here: 20 - # https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json 21 14 22 15 let 16 + # vulkan-validation-layers requires a custom glslang & robin-hood-hashing 17 + # version, while glslang requires custom versions for spirv-tools and spirv-headers. 18 + # 19 + # The git hashes required for all of these deps is documented upstream here: 20 + # https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json 21 + # and https://github.com/KhronosGroup/glslang/blob/master/known_good.json 23 22 localSpirvHeaders = spirv-headers.overrideAttrs (_: { 24 23 src = fetchFromGitHub { 25 24 owner = "KhronosGroup"; 26 25 repo = "SPIRV-Headers"; 27 - rev = "f027d53ded7e230e008d37c8b47ede7cd308e19d"; 28 - sha256 = "12gp2mqcar6jj57jw9isfr62yn72kmvdcl0zga4gvrlyfhnf582q"; 26 + rev = "dafead1765f6c1a5f9f8a76387dcb2abe4e54acd"; # pin 27 + sha256 = "1kj6wcx9y7r1xyg8n7ai2pzrg9ira7hbakr45wh5p4zyxh0m45n8"; 29 28 }; 30 29 }); 31 30 localGlslang = (glslang.override { ··· 33 32 src = fetchFromGitHub { 34 33 owner = "KhronosGroup"; 35 34 repo = "SPIRV-Tools"; 36 - rev = "c9c1f54330d13a0bec1aa3f08d436249d8e35596"; 37 - sha256 = "0r5whsw9x8j4199xwxv293ar2ga73pm2s7rngw732ylh6rw3bkly"; 35 + rev = "dc72924cb31cd9f3dbc3eb47e9d926cf641e3a07"; # pin 36 + sha256 = "0pxgbq6xapw9hgrzb3rk5cylzgg1y1bkqz5wxzwqls63pwga5912"; 38 37 }; 39 38 }); 40 39 argSpirv-headers = localSpirvHeaders; ··· 42 41 src = fetchFromGitHub { 43 42 owner = "KhronosGroup"; 44 43 repo = "glslang"; 45 - rev = "dd69df7f3dac26362e10b0f38efb9e47990f7537"; 46 - sha256 = "1iafbh524avsjg4pjiq156b62pck2rwlfl2pjnml8sjy285506rk"; 44 + rev = "18eef33bd7a4bf5ad8c69f99cb72022608cf6e73"; # pin 45 + sha256 = "0wwj7q509pkp8wj7120g1n2ddl4x2r03ljf5czd9794ji6yraidn"; 47 46 }; 48 47 }); 48 + robin-hood-hashing = fetchFromGitHub { 49 + owner = "martinus"; 50 + repo = "robin-hood-hashing"; 51 + rev = "3.11.2"; # pin 52 + sha256 = "0103mnqpmka1smy0arnrbihlvi7i8xr5im0px8wn4faw4flikkcm"; 53 + }; 49 54 in 50 - 51 55 stdenv.mkDerivation rec { 52 56 pname = "vulkan-validation-layers"; 53 - version = "1.2.162.0"; 57 + version = "1.2.182.0"; 54 58 55 59 # If we were to use "dev" here instead of headers, the setupHook would be 56 60 # placed in that output instead of "out". 57 61 outputs = ["out" "headers"]; 58 62 outputInclude = "headers"; 59 63 60 - src = fetchFromGitHub { 61 - owner = "KhronosGroup"; 62 - repo = "Vulkan-ValidationLayers"; 63 - rev = "sdk-${version}"; 64 - sha256 = "1mpqmxh9zm20jdar59lp4yjpqfzxn2pwds6bkvnzihfy0pymf15k"; 65 - }; 64 + src = (assert version == vulkan-headers.version; 65 + fetchFromGitHub { 66 + owner = "KhronosGroup"; 67 + repo = "Vulkan-ValidationLayers"; 68 + rev = "sdk-${version}"; 69 + sha256 = "1fnmb7vbm7y1x67bf1xiwdrpj9j4lkvhk9xhb6hp6x2aryvcyrnc"; 70 + }); 71 + 72 + # Include absolute paths to layer libraries in their associated 73 + # layer definition json files. 74 + postPatch = '' 75 + sed "s|\([[:space:]]*set(INSTALL_DEFINES \''${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY=\"\)\(\$<TARGET_FILE_NAME:\''${TARGET_NAME}>\")\)|\1$out/lib/\2|" -i layers/CMakeLists.txt 76 + ''; 66 77 67 78 nativeBuildInputs = [ 68 - pkg-config 69 79 cmake 70 - python3 71 80 ]; 72 81 73 82 buildInputs = [ 74 - localGlslang 75 - localGlslang.spirv-headers 76 - vulkan-headers 77 - vulkan-loader 83 + libX11 78 84 libxcb 79 85 libXrandr 86 + vulkan-headers 80 87 wayland 81 88 ]; 82 89 83 90 cmakeFlags = [ 84 91 "-DGLSLANG_INSTALL_DIR=${localGlslang}" 85 92 "-DSPIRV_HEADERS_INSTALL_DIR=${localSpirvHeaders}" 93 + "-DROBIN_HOOD_HASHING_INSTALL_DIR=${robin-hood-hashing}" 86 94 "-DBUILD_LAYER_SUPPORT_FILES=ON" 95 + # Hide dev warnings that are useless for packaging 96 + "-Wno-dev" 87 97 ]; 88 98 89 - # Include absolute paths to layer libraries in their associated 90 - # layer definition json files. 91 - patchPhase = '' 92 - sed "s|\([[:space:]]*set(INSTALL_DEFINES \''${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY=\"\)\(\$<TARGET_FILE_NAME:\''${TARGET_NAME}>\")\)|\1$out/lib/\2|" -i layers/CMakeLists.txt 93 - ''; 99 + # Tests require access to vulkan-compatible GPU, which isn't 100 + # available in Nix sandbox. Fails with VK_ERROR_INCOMPATIBLE_DRIVER. 101 + doCheck = false; 94 102 95 103 meta = with lib; { 96 104 description = "The official Khronos Vulkan validation layers";
+8 -7
pkgs/tools/graphics/vulkan-extension-layer/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "vulkan-extension-layer"; 5 - version = "2020-11-20"; 5 + version = "1.2.182.0"; 6 6 7 - src = fetchFromGitHub { 8 - owner = "KhronosGroup"; 9 - repo = "Vulkan-ExtensionLayer"; 10 - rev = "7474cb8e1f70e9f4a8bf382708a7f15465453af5"; 11 - sha256 = "1lxkgcnv32wqk4hlckv13xy84g38jzgc4qxp9vsbkrgz87hkdvwj"; 12 - }; 7 + src = (assert version == vulkan-headers.version; 8 + fetchFromGitHub { 9 + owner = "KhronosGroup"; 10 + repo = "Vulkan-ExtensionLayer"; 11 + rev = "sdk-${version}"; 12 + sha256 = "0by2kp48jbd55xk26rmlvc4wm77g1zvidx8czn1587ng2yzi7acr"; 13 + }); 13 14 14 15 nativeBuildInputs = [ cmake jq ]; 15 16
+27 -9
pkgs/tools/graphics/vulkan-tools-lunarg/default.nix
··· 1 - { stdenv, cmake, expat, fetchFromGitHub, jq, lib, libXdmcp, libXrandr, libffi 2 - , libxcb, pkg-config, python3, symlinkJoin, vulkan-headers, vulkan-loader 3 - , vulkan-validation-layers, wayland, writeText, xcbutilkeysyms, xcbutilwm 4 - , xlibsWrapper }: 1 + { lib 2 + , stdenv 3 + , fetchFromGitHub 4 + , cmake 5 + , python3 6 + , jq 7 + , expat 8 + , libX11 9 + , libXdmcp 10 + , libXrandr 11 + , libffi 12 + , libxcb 13 + , wayland 14 + , xcbutilkeysyms 15 + , xcbutilwm 16 + , vulkan-headers 17 + , vulkan-loader 18 + , symlinkJoin 19 + , vulkan-validation-layers 20 + , writeText 21 + }: 5 22 6 23 stdenv.mkDerivation rec { 7 24 pname = "vulkan-tools-lunarg"; 8 25 # The version must match that in vulkan-headers 9 - version = "1.2.162.0"; 26 + version = "1.2.182.0"; 10 27 11 28 src = (assert version == vulkan-headers.version; 12 29 fetchFromGitHub { 13 30 owner = "LunarG"; 14 31 repo = "VulkanTools"; 15 32 rev = "sdk-${version}"; 16 - sha256 = "13v4202bfd7d7nwi8w12ja9k1vi10p9xxypzkpi063hmsgzxm5k5"; 33 + sha256 = "1b7762fcbakfvj2b2l68qj25pc7pz9jhfabf1x80b9w3q205hl2f"; 17 34 fetchSubmodules = true; 18 35 }); 19 36 20 - nativeBuildInputs = [ cmake pkg-config python3 jq ]; 37 + nativeBuildInputs = [ cmake python3 jq ]; 21 38 22 39 buildInputs = [ 23 40 expat 41 + libX11 24 42 libXdmcp 25 43 libXrandr 26 44 libffi ··· 28 46 wayland 29 47 xcbutilkeysyms 30 48 xcbutilwm 31 - xlibsWrapper 32 49 ]; 33 50 34 51 cmakeFlags = [ ··· 40 57 paths = [ vulkan-validation-layers.headers vulkan-validation-layers ]; 41 58 } 42 59 }" 60 + # Hide dev warnings that are useless for packaging 61 + "-Wno-dev" 43 62 ]; 44 63 45 64 preConfigure = '' ··· 63 82 ''; 64 83 65 84 # Same as vulkan-validation-layers 66 - libraryPath = lib.strings.makeLibraryPath [ vulkan-loader ]; 67 85 dontPatchELF = true; 68 86 69 87 # Help vulkan-loader find the validation layers
+17 -13
pkgs/tools/graphics/vulkan-tools/default.nix
··· 1 - { stdenv, lib, fetchFromGitHub, cmake, python3, vulkan-loader, 2 - vulkan-headers, glslang, pkg-config, xlibsWrapper, libxcb, 3 - libXrandr, wayland }: 1 + { stdenv, lib, fetchFromGitHub, cmake, glslang, libX11, libxcb 2 + , libXrandr, vulkan-headers, vulkan-loader, wayland }: 4 3 5 4 stdenv.mkDerivation rec { 6 5 pname = "vulkan-tools"; 7 - version = "1.2.162.0"; 6 + version = "1.2.182.0"; 8 7 9 - src = fetchFromGitHub { 10 - owner = "KhronosGroup"; 11 - repo = "Vulkan-Tools"; 12 - rev = "sdk-${version}"; 13 - sha256 = "088vqh956zma3p1qc3p6rsygf5s395b6cv8b1x0whp2a0a1y81xz"; 14 - }; 8 + # It's not strictly necessary to have matching versions here, however 9 + # since we're using the SDK version we may as well be consistent with 10 + # the rest of nixpkgs. 11 + src = (assert version == vulkan-headers.version; 12 + fetchFromGitHub { 13 + owner = "KhronosGroup"; 14 + repo = "Vulkan-Tools"; 15 + rev = "sdk-${version}"; 16 + sha256 = "028l2l7jx4443k8207q8jmjq1mnnm9kgyl2417jrkrvylcbv8ji9"; 17 + }); 15 18 16 - nativeBuildInputs = [ cmake pkg-config ]; 17 - buildInputs = [ python3 vulkan-headers vulkan-loader xlibsWrapper libxcb libXrandr wayland ]; 19 + nativeBuildInputs = [ cmake ]; 20 + buildInputs = [ glslang libX11 libxcb libXrandr vulkan-headers vulkan-loader wayland ]; 18 21 19 22 libraryPath = lib.strings.makeLibraryPath [ vulkan-loader ]; 20 23 ··· 23 26 cmakeFlags = [ 24 27 # Don't build the mock ICD as it may get used instead of other drivers, if installed 25 28 "-DBUILD_ICD=OFF" 26 - "-DGLSLANG_INSTALL_DIR=${glslang}" 27 29 # vulkaninfo loads libvulkan using dlopen, so we have to add it manually to RPATH 28 30 "-DCMAKE_INSTALL_RPATH=${libraryPath}" 31 + # Hide dev warnings that are useless for packaging 32 + "-Wno-dev" 29 33 ]; 30 34 31 35 meta = with lib; {