From f089fdbc8068878ce430e94df851c83c1d848567 Mon Sep 17 00:00:00 2001 From: Sean D Gillespie Date: Sun, 24 Apr 2022 14:43:17 -0400 Subject: [PATCH] Vulkan: 1.2.198.0 -> 1.3.211.0 Update: * glslang * spirv-headers * spirv-toools * vulkan-extension-layer * vulkan-headers * vulkan-loader * vulkan-tools * vulkan-tools-lunarg * vulkan-validation-layers Fixes #161060 --- .../development/compilers/glslang/default.nix | 4 +- .../libraries/spirv-headers/default.nix | 4 +- .../libraries/vulkan-headers/default.nix | 4 +- .../libraries/vulkan-loader/default.nix | 4 +- .../development/tools/spirv-tools/default.nix | 4 +- .../vulkan-validation-layers/default.nix | 24 ++++++---- .../robin-hood-hashing.nix | 33 ++++++++++++++ .../vulkan-extension-layer/default.nix | 4 +- .../graphics/vulkan-tools-lunarg/default.nix | 4 +- pkgs/tools/graphics/vulkan-tools/default.nix | 44 ++++++++++++++++--- 10 files changed, 100 insertions(+), 29 deletions(-) create mode 100644 pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix diff --git a/pkgs/development/compilers/glslang/default.nix b/pkgs/development/compilers/glslang/default.nix index 7295db0d9d3..b1f12304a06 100644 --- a/pkgs/development/compilers/glslang/default.nix +++ b/pkgs/development/compilers/glslang/default.nix @@ -9,13 +9,13 @@ }: stdenv.mkDerivation rec { pname = "glslang"; - version = "1.2.198.0"; + version = "1.3.211.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "glslang"; rev = "sdk-${version}"; - sha256 = "sha256-FRiqsfoyjUW2kbbphxcy0Hn0TLVaszatM/nnWBrchRY="; + sha256 = "sha256-YLn/Mxuk6mXPGtBBgfwky5Nl1TCAW6i2g+AZLzqVz+A="; }; # These get set at all-packages, keep onto them for child drvs diff --git a/pkgs/development/libraries/spirv-headers/default.nix b/pkgs/development/libraries/spirv-headers/default.nix index d9516538163..379b6b7c1bb 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.2.198.0"; + version = "1.3.211.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Headers"; rev = "sdk-${version}"; - sha256 = "sha256-cdEiRSCoX0New8ecUh7UTDz/is2v29zhf6Il2N1j3mw="; + sha256 = "sha256-LkIrTFWYvZffLVJJW3152um5LTEsMJEDEsIhBAdhBlk="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/vulkan-headers/default.nix b/pkgs/development/libraries/vulkan-headers/default.nix index 4010ee68459..4fead1a1180 100644 --- a/pkgs/development/libraries/vulkan-headers/default.nix +++ b/pkgs/development/libraries/vulkan-headers/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchFromGitHub, cmake }: stdenv.mkDerivation rec { pname = "vulkan-headers"; - version = "1.2.198.0"; + version = "1.3.211.0"; nativeBuildInputs = [ cmake ]; @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { owner = "KhronosGroup"; repo = "Vulkan-Headers"; rev = "sdk-${version}"; - sha256 = "sha256-SvC0AX1wIZWLzws3ZS8Wi8fbNUw1+An/PRlFIfNj24Y="; + sha256 = "sha256-FqrcFHsUS8e4ZgZpxVc8nNZWdNltniFmMjyyWVoNc7w="; }; meta = with lib; { diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix index 077f881e722..b8d2948cb68 100644 --- a/pkgs/development/libraries/vulkan-loader/default.nix +++ b/pkgs/development/libraries/vulkan-loader/default.nix @@ -3,14 +3,14 @@ stdenv.mkDerivation rec { pname = "vulkan-loader"; - version = "1.2.198.0"; + version = "1.3.211.0"; src = (assert version == vulkan-headers.version; fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-Loader"; rev = "sdk-${version}"; - sha256 = "sha256-k3eCdZqCjFxpKa0pZ0K4XcORxdSOlr1dFa7C3Qzi04Y="; + sha256 = "sha256-NQu98wA7UK231rpoKDs1yQ6pEyB4wZg7MjFC3JwS2BY="; }); nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/development/tools/spirv-tools/default.nix b/pkgs/development/tools/spirv-tools/default.nix index aa58b37773e..948da2773ec 100644 --- a/pkgs/development/tools/spirv-tools/default.nix +++ b/pkgs/development/tools/spirv-tools/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "spirv-tools"; - version = "1.2.198.0"; + version = "1.3.211.0"; src = fetchFromGitHub { owner = "KhronosGroup"; repo = "SPIRV-Tools"; rev = "sdk-${version}"; - sha256 = "sha256-8EJbTPY5dvsqx32POf2HcCV3j2fA68GtGZA66l9V4TI="; + sha256 = "sha256-DoE+UCJOTB8JidC208wgfV1trZC4r9uFvwRPUhJVaII="; }; nativeBuildInputs = [ cmake python3 ]; diff --git a/pkgs/development/tools/vulkan-validation-layers/default.nix b/pkgs/development/tools/vulkan-validation-layers/default.nix index dfc5ea9de65..586aa1797bc 100644 --- a/pkgs/development/tools/vulkan-validation-layers/default.nix +++ b/pkgs/development/tools/vulkan-validation-layers/default.nix @@ -1,10 +1,15 @@ { lib +, callPackage , stdenv , fetchFromGitHub , cmake +, pkgconfig , glslang +, libffi , libX11 +, libXau , libxcb +, libXdmcp , libXrandr , spirv-headers , spirv-tools @@ -13,16 +18,11 @@ }: let - robin-hood-hashing = fetchFromGitHub { - owner = "martinus"; - repo = "robin-hood-hashing"; - rev = "3.11.3"; # pin - sha256 = "1gm3lwjkh6h8m7lfykzd0jzhfqjmjchindkmxc008rwvxafsd1pl"; - }; + robin-hood-hashing = callPackage ./robin-hood-hashing.nix {}; in stdenv.mkDerivation rec { pname = "vulkan-validation-layers"; - version = "1.2.198.0"; + version = "1.3.211.0"; # If we were to use "dev" here instead of headers, the setupHook would be # placed in that output instead of "out". @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { owner = "KhronosGroup"; repo = "Vulkan-ValidationLayers"; rev = "sdk-${version}"; - sha256 = "sha256-/pnXT55EQZcnjOzY2vBwp+gM6l2hktZHwB9yKP8vVTU="; + sha256 = "sha256-NGpFfekZtB0rvnGxYVDo808xzgBuo8ZC4bjXjQnTpxU="; }); # Include absolute paths to layer libraries in their associated @@ -45,12 +45,17 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake + pkgconfig ]; buildInputs = [ libX11 - libxcb + libXau + libXdmcp libXrandr + libffi + libxcb + spirv-tools vulkan-headers wayland ]; @@ -60,6 +65,7 @@ stdenv.mkDerivation rec { "-DSPIRV_HEADERS_INSTALL_DIR=${spirv-headers}" "-DROBIN_HOOD_HASHING_INSTALL_DIR=${robin-hood-hashing}" "-DBUILD_LAYER_SUPPORT_FILES=ON" + "-DPKG_CONFIG_EXECUTABLE=${pkgconfig}/bin/pkg-config" # Hide dev warnings that are useless for packaging "-Wno-dev" ]; diff --git a/pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix b/pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix new file mode 100644 index 00000000000..cd08f0231ab --- /dev/null +++ b/pkgs/development/tools/vulkan-validation-layers/robin-hood-hashing.nix @@ -0,0 +1,33 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +}: + +stdenv.mkDerivation rec { + pname = "robin-hood-hashing"; + version = "3.11.5"; # pin + + src = fetchFromGitHub { + owner = "martinus"; + repo = "robin-hood-hashing"; + rev = version; # pin + sha256 = "sha256-J4u9Q6cXF0SLHbomP42AAn5LSKBYeVgTooOhqxOIpuM="; + }; + + nativeBuildInputs = [ + cmake + ]; + + cmakeFlags = [ + "-DRH_STANDALONE_PROJECT=OFF" + ]; + + meta = with lib; { + description = "A faster, more efficient replacement for std::unordered_map / std::unordered_set"; + homepage = "https://github.com/martinus/robin-hood-hashing"; + platforms = platforms.linux; + license = licenses.mit; + maintainers = [ ]; + }; +} diff --git a/pkgs/tools/graphics/vulkan-extension-layer/default.nix b/pkgs/tools/graphics/vulkan-extension-layer/default.nix index df41ecd485d..ea1acfb4edf 100644 --- a/pkgs/tools/graphics/vulkan-extension-layer/default.nix +++ b/pkgs/tools/graphics/vulkan-extension-layer/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { pname = "vulkan-extension-layer"; - version = "1.2.198.0"; + version = "1.3.211.0"; src = (assert version == vulkan-headers.version; fetchFromGitHub { owner = "KhronosGroup"; repo = "Vulkan-ExtensionLayer"; rev = "sdk-${version}"; - sha256 = "sha256-g674rw8lXyP1WUoJmbRRL7s+1Yxs00sR04+hTQ3l3dE="; + sha256 = "sha256-ixCfHnp6YAOuR4NMTGjhhqkfm0H7ZcO/8xKFJqw16YE="; }); nativeBuildInputs = [ cmake jq ]; diff --git a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix index ae9e0e86b25..7bdfafad13f 100644 --- a/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix +++ b/pkgs/tools/graphics/vulkan-tools-lunarg/default.nix @@ -23,14 +23,14 @@ stdenv.mkDerivation rec { pname = "vulkan-tools-lunarg"; # The version must match that in vulkan-headers - version = "1.2.189.1"; + version = "1.3.211.0"; src = (assert version == vulkan-headers.version; fetchFromGitHub { owner = "LunarG"; repo = "VulkanTools"; rev = "sdk-${version}"; - sha256 = "0431dgplv5wiz8bj0ja91mbpc2qhjgdhqhrgaqarvyvjr1f7jw52"; + sha256 = "sha256-Pkz2FV0AnTKm/4jVmkQNkYzpxpKJaSoy2fRAhVh5OKU="; fetchSubmodules = true; }); diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix index 987511b1cc9..77d23df4923 100644 --- a/pkgs/tools/graphics/vulkan-tools/default.nix +++ b/pkgs/tools/graphics/vulkan-tools/default.nix @@ -1,9 +1,24 @@ -{ stdenv, lib, fetchFromGitHub, cmake, glslang, libX11, libxcb -, libXrandr, vulkan-headers, vulkan-loader, wayland }: +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkgconfig +, glslang +, libffi +, libX11 +, libXau +, libxcb +, libXdmcp +, libXrandr +, vulkan-headers +, vulkan-loader +, wayland +, wayland-protocols +}: stdenv.mkDerivation rec { pname = "vulkan-tools"; - version = "1.2.198.0"; + version = "1.3.211.0"; # It's not strictly necessary to have matching versions here, however # since we're using the SDK version we may as well be consistent with @@ -13,11 +28,27 @@ stdenv.mkDerivation rec { owner = "KhronosGroup"; repo = "Vulkan-Tools"; rev = "sdk-${version}"; - sha256 = "sha256-oNJm9Gi41aA5krkpkQI0EYdIlMcQpdodv9yqXhnNURA="; + sha256 = "sha256-iXsWTKNllPZy1Kpo3JHzEEus3Hu9LofvMB3c4Gn6/DM="; }); - nativeBuildInputs = [ cmake ]; - buildInputs = [ glslang libX11 libxcb libXrandr vulkan-headers vulkan-loader wayland ]; + nativeBuildInputs = [ + cmake + pkgconfig + ]; + + buildInputs = [ + glslang + libffi + libX11 + libXau + libxcb + libXdmcp + libXrandr + vulkan-headers + vulkan-loader + wayland + wayland-protocols + ]; libraryPath = lib.strings.makeLibraryPath [ vulkan-loader ]; @@ -28,6 +59,7 @@ stdenv.mkDerivation rec { "-DBUILD_ICD=OFF" # vulkaninfo loads libvulkan using dlopen, so we have to add it manually to RPATH "-DCMAKE_INSTALL_RPATH=${libraryPath}" + "-DPKG_CONFIG_EXECUTABLE=${pkgconfig}/bin/pkg-config" # Hide dev warnings that are useless for packaging "-Wno-dev" ];