From c5b505393a22cd0f6bd6a85105ae44741834e0e7 Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Wed, 23 Feb 2022 09:38:05 -0600 Subject: [PATCH] proton: Move mfplat MFDXGIDeviceManager hack appid list to proton script --- README.md | 1 + proton | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/README.md b/README.md index b5bc7b22..fd714d1e 100644 --- a/README.md +++ b/README.md @@ -239,6 +239,7 @@ the Wine prefix. Removing the option will revert to the previous behavior. | `oldglstr` | `PROTON_OLD_GL_STRING` | Set some driver overrides to limit the length of the GL extension string, for old games that crash on very long extension strings. | | `vkd3dfl12` | | Force the Direct3D 12 feature level to 12, regardless of driver support. | | `vkd3dbindlesstb` | | Put `force_bindless_texel_buffer` into `VKD3D_CONFIG`. | +| `nomfdxgiman` | `WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER` | Enable hack to work around video issues in some games due to incomplete IMFDXGIDeviceManager support. | | `hidenvgpu` | `PROTON_HIDE_NVIDIA_GPU` | Force Nvidia GPUs to always be reported as AMD GPUs. Some games require this if they depend on Windows-only Nvidia driver functionality. See also DXVK's nvapiHack config, which only affects reporting from Direct3D. | | | `WINE_FULLSCREEN_INTEGER_SCALING` | Enable integer scaling mode, to give sharp pixels when upscaling. | | `cmdlineappend:` | | Append the string after the colon as an argument to the game command. May be specified more than once. Escape commas and backslashes with a backslash. | diff --git a/proton b/proton index 2a0893ff..8fac4972 100755 --- a/proton +++ b/proton @@ -932,6 +932,18 @@ def default_compat_config(): elif appid == "105800": #PixelJunk Eden ret.add("noesync") ret.add("nofsync") + elif appid in [ + #affected by CW bug 19126 + "305620", #The Long Dark + "585420", #Trailmakers + "684450", #Surviving the Aftermath + "1075200", #TOHU + "1331440", #FUSER + + #affected by CW bug 19741 + "1017900", #Age of Empires: Definitive Edition + ]: + ret.add("nomfdxgiman") return ret class Session: @@ -1139,6 +1151,9 @@ class Session: if "disablelibglesv2" in self.compat_config: self.dlloverrides["libglesv2"] = "d" + if "nomfdxgiman" in self.compat_config: + self.env["WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER"] = "1" + if "PROTON_CRASH_REPORT_DIR" in self.env: self.env["WINE_CRASH_REPORT_DIR"] = self.env["PROTON_CRASH_REPORT_DIR"]