|
|
|
@ -13,38 +13,6 @@ |
|
|
|
|
}: |
|
|
|
|
|
|
|
|
|
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 = "449bc986ba6f4c5e10e32828783f9daef2a77644"; # pin |
|
|
|
|
sha256 = "1249pvk4iz09caxm3kwckzwcx2hbw97cr2h8h770l6c061kb14z5"; |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
localGlslang = (glslang.override { |
|
|
|
|
argSpirv-tools = spirv-tools.overrideAttrs (_: { |
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "KhronosGroup"; |
|
|
|
|
repo = "SPIRV-Tools"; |
|
|
|
|
rev = "1fbed83c8aab8517d821fcb4164c08567951938f"; # pin |
|
|
|
|
sha256 = "0faz468bnxpvbg1np13gnbwf35s0hl9ad7r2p9wi9si5k336qjmj"; |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
argSpirv-headers = localSpirvHeaders; |
|
|
|
|
}).overrideAttrs (_: { |
|
|
|
|
src = fetchFromGitHub { |
|
|
|
|
owner = "KhronosGroup"; |
|
|
|
|
repo = "glslang"; |
|
|
|
|
rev = "2fb89a0072ae7316af1c856f22663fde4928128a"; # pin |
|
|
|
|
sha256 = "04kkmphv0a5mb5javhmkc4kab8r0n107kb7djakj5h238ni2j7q9"; |
|
|
|
|
}; |
|
|
|
|
}); |
|
|
|
|
robin-hood-hashing = fetchFromGitHub { |
|
|
|
|
owner = "martinus"; |
|
|
|
|
repo = "robin-hood-hashing"; |
|
|
|
@ -54,19 +22,19 @@ let |
|
|
|
|
in |
|
|
|
|
stdenv.mkDerivation rec { |
|
|
|
|
pname = "vulkan-validation-layers"; |
|
|
|
|
version = "1.2.189.1"; |
|
|
|
|
version = "1.2.198.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 = (assert version == vulkan-headers.version; |
|
|
|
|
src = (assert (lib.all (pkg: pkg.version == version) [vulkan-headers glslang spirv-tools spirv-headers]); |
|
|
|
|
fetchFromGitHub { |
|
|
|
|
owner = "KhronosGroup"; |
|
|
|
|
repo = "Vulkan-ValidationLayers"; |
|
|
|
|
rev = "sdk-${version}"; |
|
|
|
|
sha256 = "0a5plvvffidgnqh5ymq315xscl08w298sn9da48b3x2rdbdqgw90"; |
|
|
|
|
sha256 = "sha256-/pnXT55EQZcnjOzY2vBwp+gM6l2hktZHwB9yKP8vVTU="; |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
# Include absolute paths to layer libraries in their associated |
|
|
|
@ -88,8 +56,8 @@ stdenv.mkDerivation rec { |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
cmakeFlags = [ |
|
|
|
|
"-DGLSLANG_INSTALL_DIR=${localGlslang}" |
|
|
|
|
"-DSPIRV_HEADERS_INSTALL_DIR=${localSpirvHeaders}" |
|
|
|
|
"-DGLSLANG_INSTALL_DIR=${glslang}" |
|
|
|
|
"-DSPIRV_HEADERS_INSTALL_DIR=${spirv-headers}" |
|
|
|
|
"-DROBIN_HOOD_HASHING_INSTALL_DIR=${robin-hood-hashing}" |
|
|
|
|
"-DBUILD_LAYER_SUPPORT_FILES=ON" |
|
|
|
|
# Hide dev warnings that are useless for packaging |
|
|
|
|