diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:54:22 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-08-04 10:54:22 +0000 |
commit | d2e147bedf251976ed99b94b6c905d6761f7a892 (patch) | |
tree | 9e0c62d61698916fd4627ed98d3d880c8fc0ab2e /pkgs/development/tools/vulkan-validation-layers/default.nix | |
parent | 62614cbef7da005c1eda8c9400160f6bcd6546b8 (diff) | |
parent | c464dc811babfe316ed4ab7bbc12351122e69dd7 (diff) | |
download | nixpkgs-d2e147bedf251976ed99b94b6c905d6761f7a892.tar nixpkgs-d2e147bedf251976ed99b94b6c905d6761f7a892.tar.gz nixpkgs-d2e147bedf251976ed99b94b6c905d6761f7a892.tar.bz2 nixpkgs-d2e147bedf251976ed99b94b6c905d6761f7a892.tar.lz nixpkgs-d2e147bedf251976ed99b94b6c905d6761f7a892.tar.xz nixpkgs-d2e147bedf251976ed99b94b6c905d6761f7a892.tar.zst nixpkgs-d2e147bedf251976ed99b94b6c905d6761f7a892.zip |
Merge remote-tracking branch 'nixpkgs/nixos-unstable' into master
Diffstat (limited to 'pkgs/development/tools/vulkan-validation-layers/default.nix')
-rw-r--r-- | pkgs/development/tools/vulkan-validation-layers/default.nix | 84 |
1 files changed, 46 insertions, 38 deletions
diff --git a/pkgs/development/tools/vulkan-validation-layers/default.nix b/pkgs/development/tools/vulkan-validation-layers/default.nix index adec30a14c5..eac704b4a9c 100644 --- a/pkgs/development/tools/vulkan-validation-layers/default.nix +++ b/pkgs/development/tools/vulkan-validation-layers/default.nix @@ -1,31 +1,30 @@ -{ lib, stdenv +{ lib +, stdenv , fetchFromGitHub , cmake -, writeText -, python3 -, spirv-headers -, spirv-tools -, vulkan-headers -, vulkan-loader , glslang -, pkg-config -, xlibsWrapper +, libX11 , libxcb , libXrandr +, spirv-headers +, spirv-tools +, vulkan-headers , wayland }: -# vulkan-validation-layers requires a custom glslang version, while glslang requires -# custom versions for spirv-tools and spirv-headers. The git hashes required for all -# of these deps is documented upstream here: -# https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json let + # vulkan-validation-layers requires a custom glslang & robin-hood-hashing + # version, while glslang requires custom versions for spirv-tools and spirv-headers. + # + # The git hashes required for all of these deps is documented upstream here: + # https://github.com/KhronosGroup/Vulkan-ValidationLayers/blob/master/scripts/known_good.json + # and https://github.com/KhronosGroup/glslang/blob/master/known_good.json localSpirvHeaders = spirv-headers.overrideAttrs (_: { src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Headers"; - rev = "f027d53ded7e230e008d37c8b47ede7cd308e19d"; - sha256 = "12gp2mqcar6jj57jw9isfr62yn72kmvdcl0zga4gvrlyfhnf582q"; + rev = "dafead1765f6c1a5f9f8a76387dcb2abe4e54acd"; # pin + sha256 = "1kj6wcx9y7r1xyg8n7ai2pzrg9ira7hbakr45wh5p4zyxh0m45n8"; }; }); localGlslang = (glslang.override { @@ -33,8 +32,8 @@ let src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; - rev = "c9c1f54330d13a0bec1aa3f08d436249d8e35596"; - sha256 = "0r5whsw9x8j4199xwxv293ar2ga73pm2s7rngw732ylh6rw3bkly"; + rev = "dc72924cb31cd9f3dbc3eb47e9d926cf641e3a07"; # pin + sha256 = "0pxgbq6xapw9hgrzb3rk5cylzgg1y1bkqz5wxzwqls63pwga5912"; }; }); argSpirv-headers = localSpirvHeaders; @@ -42,55 +41,64 @@ let src = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; - rev = "dd69df7f3dac26362e10b0f38efb9e47990f7537"; - sha256 = "1iafbh524avsjg4pjiq156b62pck2rwlfl2pjnml8sjy285506rk"; + rev = "18eef33bd7a4bf5ad8c69f99cb72022608cf6e73"; # pin + sha256 = "0wwj7q509pkp8wj7120g1n2ddl4x2r03ljf5czd9794ji6yraidn"; }; }); + robin-hood-hashing = fetchFromGitHub { + owner = "martinus"; + repo = "robin-hood-hashing"; + rev = "3.11.2"; # pin + sha256 = "0103mnqpmka1smy0arnrbihlvi7i8xr5im0px8wn4faw4flikkcm"; + }; in - stdenv.mkDerivation rec { pname = "vulkan-validation-layers"; - version = "1.2.162.0"; + version = "1.2.182.0"; # If we were to use "dev" here instead of headers, the setupHook would be # placed in that output instead of "out". outputs = ["out" "headers"]; outputInclude = "headers"; - src = fetchFromGitHub { - owner = "KhronosGroup"; - repo = "Vulkan-ValidationLayers"; - rev = "sdk-${version}"; - sha256 = "1mpqmxh9zm20jdar59lp4yjpqfzxn2pwds6bkvnzihfy0pymf15k"; - }; + src = (assert version == vulkan-headers.version; + fetchFromGitHub { + owner = "KhronosGroup"; + repo = "Vulkan-ValidationLayers"; + rev = "sdk-${version}"; + sha256 = "1fnmb7vbm7y1x67bf1xiwdrpj9j4lkvhk9xhb6hp6x2aryvcyrnc"; + }); + + # Include absolute paths to layer libraries in their associated + # layer definition json files. + postPatch = '' + sed "s|\([[:space:]]*set(INSTALL_DEFINES \''${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY=\"\)\(\$<TARGET_FILE_NAME:\''${TARGET_NAME}>\")\)|\1$out/lib/\2|" -i layers/CMakeLists.txt + ''; nativeBuildInputs = [ - pkg-config cmake - python3 ]; buildInputs = [ - localGlslang - localGlslang.spirv-headers - vulkan-headers - vulkan-loader + libX11 libxcb libXrandr + vulkan-headers wayland ]; cmakeFlags = [ "-DGLSLANG_INSTALL_DIR=${localGlslang}" "-DSPIRV_HEADERS_INSTALL_DIR=${localSpirvHeaders}" + "-DROBIN_HOOD_HASHING_INSTALL_DIR=${robin-hood-hashing}" "-DBUILD_LAYER_SUPPORT_FILES=ON" + # Hide dev warnings that are useless for packaging + "-Wno-dev" ]; - # Include absolute paths to layer libraries in their associated - # layer definition json files. - patchPhase = '' - sed "s|\([[:space:]]*set(INSTALL_DEFINES \''${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY=\"\)\(\$<TARGET_FILE_NAME:\''${TARGET_NAME}>\")\)|\1$out/lib/\2|" -i layers/CMakeLists.txt - ''; + # Tests require access to vulkan-compatible GPU, which isn't + # available in Nix sandbox. Fails with VK_ERROR_INCOMPATIBLE_DRIVER. + doCheck = false; meta = with lib; { description = "The official Khronos Vulkan validation layers"; |