diff options
Diffstat (limited to 'pkgs/by-name/dx/dxvk_1/package.nix')
-rw-r--r-- | pkgs/by-name/dx/dxvk_1/package.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/by-name/dx/dxvk_1/package.nix b/pkgs/by-name/dx/dxvk_1/package.nix new file mode 100644 index 00000000000..a02680d77ee --- /dev/null +++ b/pkgs/by-name/dx/dxvk_1/package.nix @@ -0,0 +1,49 @@ +{ lib +, stdenv +, fetchFromGitHub +, glslang +, meson +, ninja +, windows +, pkgsBuildHost +, enableMoltenVKCompat ? false +}: + +stdenv.mkDerivation (finalAttrs: { + pname = "dxvk"; + version = "1.10.3"; + + src = fetchFromGitHub { + owner = "doitsujin"; + repo = "dxvk"; + rev = "v${finalAttrs.version}"; + hash = "sha256-T93ZylxzJGprrP+j6axZwl2d3hJowMCUOKNjIyNzkmE="; + }; + + # These patches are required when using DXVK with Wine on Darwin. + patches = lib.optionals enableMoltenVKCompat [ + # Patch DXVK to work with MoltenVK even though it doesn’t support some required features. + # Some games work poorly (particularly Unreal Engine 4 games), but others work pretty well. + ./darwin-dxvk-compat.patch + # Use synchronization primitives from the C++ standard library to avoid deadlocks on Darwin. + # See: https://www.reddit.com/r/macgaming/comments/t8liua/comment/hzsuce9/ + ./darwin-thread-primitives.patch + ]; + + nativeBuildInputs = [ glslang meson ninja ]; + buildInputs = [ windows.pthreads ]; + + mesonFlags = [ + "--buildtype" "release" + "--prefix" "${placeholder "out"}" + ]; + + meta = { + description = "A Vulkan-based translation layer for Direct3D 9/10/11"; + homepage = "https://github.com/doitsujin/dxvk"; + changelog = "https://github.com/doitsujin/dxvk/releases"; + maintainers = [ lib.maintainers.reckenrode ]; + license = lib.licenses.zlib; + platforms = lib.platforms.windows; + }; +}) |