diff --git a/pkgs/misc/dxvk/dxvk.nix b/pkgs/misc/dxvk/dxvk.nix index e0a104ff354e..793264f9b30b 100644 --- a/pkgs/misc/dxvk/dxvk.nix +++ b/pkgs/misc/dxvk/dxvk.nix @@ -9,8 +9,15 @@ , spirv-headers , vulkan-headers , SDL2 +, glfw +, pkgsBuildHost +, sdl2Support ? true +, glfwSupport ? false }: +# SDL2 and GLFW support are mutually exclusive. +assert !sdl2Support || !glfwSupport; + let # DXVK 2.0+ no longer vendors certain dependencies. This derivation also needs to build on Darwin, # which does not currently support DXVK 2.0, so adapt conditionally for this situation. @@ -36,13 +43,13 @@ let ./darwin-thread-primitives.patch ]; }; - "2.0" = rec { - version = "2.0"; + "2.1" = rec { + version = "2.1"; src = fetchFromGitHub { owner = "doitsujin"; repo = "dxvk"; rev = "v${version}"; - hash = "sha256-mSNFvoILsvm+CpWV7uRlb7DkjV7ctClSUdteNcF5EAY="; + hash = "sha256-A4KR11brfQbR56dGt371MRwMN/H6HFAU8TlFC97/bRs="; fetchSubmodules = true; # Needed for the DirectX headers and libdisplay-info }; patches = [ ]; @@ -61,8 +68,14 @@ stdenv.mkDerivation { ++ lib.optionals isDxvk2 ( [ spirv-headers vulkan-headers ] ++ lib.optional (!isWindows && sdl2Support) SDL2 + ++ lib.optional (!isWindows && glfwSupport) glfw ); + postPatch = lib.optionalString isDxvk2 '' + substituteInPlace "subprojects/libdisplay-info/tool/gen-search-table.py" \ + --replace "/usr/bin/env python3" "${lib.getBin pkgsBuildHost.python3}/bin/python3" + ''; + # Build with the Vulkan SDK in nixpkgs. preConfigure = '' rm -rf include/spirv/include include/vulkan/include @@ -77,7 +90,8 @@ stdenv.mkDerivation { "--buildtype" "release" "--prefix" "${placeholder "out"}" ] - ++ lib.optionals isCross [ "--cross-file" "build-win${arch}.txt" ]; + ++ lib.optionals isCross [ "--cross-file" "build-win${arch}.txt" ] + ++ lib.optional glfwSupport "-Ddxvk_native_wsi=glfw"; doCheck = isDxvk2 && !isCross; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0d09810ef2ff..cbc10e07eb80 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -37210,7 +37210,7 @@ with pkgs; dxvk = callPackage ../misc/dxvk { }; dxvk_1 = callPackage ../misc/dxvk/dxvk.nix { dxvkVersion = "1.10"; }; - dxvk_2 = callPackage ../misc/dxvk/dxvk.nix { dxvkVersion = "2.0"; }; + dxvk_2 = callPackage ../misc/dxvk/dxvk.nix { dxvkVersion = "2.1"; }; ecdsatool = callPackage ../tools/security/ecdsatool { };