{ stdenv, lib, fetchFromGitHub, fetchpatch, glslang, buildPackages, writeScriptBin, pkgs, pkgsCross, async ? false }: let fix = writeScriptBin "x86_64-w64-mingw32-windres" '' #!${stdenv.shell} exec ${pkgsCross.mingwW64.buildPackages.binutils.bintools}/bin/x86_64-w64-mingw32-windres --preprocessor=x86_64-w64-mingw32-gcc --preprocessor-arg=-E --preprocessor-arg=-xc --preprocessor-arg=-DRC_INVOKED $@ ''; asyncPatch = (fetchpatch { name = "dxvk-async"; url = "https://raw.githubusercontent.com/Sporif/dxvk-async/2c41ae818236dcfdf37e7262360dd9eea42ee5d6/dxvk-async.patch"; sha256 = "sha256-fWGd0a54C2kQ8slvgGu/6PE3RcReW1yF7mPaBPaW1Fw="; }); in stdenv.mkDerivation rec { pname = "dxvk"; version = "1.10.1"; patches = [ asyncPatch ]; src = fetchFromGitHub { owner = "doitsujin"; repo = "dxvk"; rev = "v${version}"; sha256 = "sha256-+6PkrkamSvhCaGj2tq+RXri/yQ7vs0cAqgdRAFtU8UA="; }; CFLAGS="-fstack-protector"; CPPFLAGS="-fstack-protector"; mesonFlags = [ "--cross-file build-win64.txt" "--buildtype release" ]; depsBuildBuild = [ fix buildPackages.gcc buildPackages.meson buildPackages.ninja glslang ]; depsBuildTarget = [ pkgs.windows.pthreads ]; }