From 7d4ca96ae15aa2024c6d0ca576043c377d6b5abf Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Tue, 28 Jun 2022 10:20:01 -0500 Subject: [PATCH] proton: Add WINE_DISABLE_VULKAN_OPWR hack appid list. CW-Bug-Id: #20680 --- README.md | 1 + proton | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/README.md b/README.md index 18609af3..b0a54f17 100644 --- a/README.md +++ b/README.md @@ -268,6 +268,7 @@ the Wine prefix. Removing the option will revert to the previous behavior. | `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. | +| `noopwr` | `WINE_DISABLE_VULKAN_OPWR` | Enable hack to disable Vulkan other process window rendering which sometimes causes issues on Wayland due to blit being one frame behind. | | `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 ed5b1d23..824f3a87 100755 --- a/proton +++ b/proton @@ -997,6 +997,46 @@ def default_compat_config(): "1017900", #Age of Empires: Definitive Edition ]: ret.add("nomfdxgiman") + + if appid in [ + # OPWR may be causing text input delays in login windows in these games on Wayland due to + # blit happening before presentation + "1172620", #Sea of Thieves + "962130", #Grounded + "495420", #State of Decay 2: Juggernaut Edition + "976730", #Halo: The Master Chief Collection + "1017900", #Age of Empires: Definitive Edition + "1056090", #Ori and the Will of the Wisps + "1293830", #Forza Horizon 4 + "1551360", #Forza Horizon 5 + "271590", #Grand Theft Auto V + "5699", #Grand Theft Auto V Premium Edition + "1174180", #Red Dead Redemption 2 + "1404210", #Red Dead Online + "12210", #Grand Theft Auto IV: Complete Edition + "204100", #Max Payne 3 + "110800", #L.A. Noire + "12200", #Bully: Scholarship Edition + "12120", #Grand Theft Auto: San Andreas + "12110", #Grand Theft Auto: Vice City + "12100", #Grand Theft Auto III + "722230", #L.A. Noire: The VR Case Files + "813780", #Age of Empires II: Definitive Edition + "933110", #Age of Empires III: Definitive Edition + "1466860", #Age of Empires IV + "1097840", #Gears 5 + "1244950", #Battletoads + "1189800", #Bleeding Edge + "1184050", #Gears Tactics + "1240440", #Halo Infinite + "1250410", #Microsoft Flight Simulator + "1672970", #Minecraft Dungeons + "1180660", #Tell Me Why + "1238430", #Tell Me Why Chapter 2 + "1266670", #Tell Me Why Chapter 3 + ]: + ret.add("noopwr") + return ret class Session: @@ -1211,6 +1251,9 @@ class Session: if "nomfdxgiman" in self.compat_config: self.env["WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER"] = "1" + if "noopwr" in self.compat_config: + self.env["WINE_DISABLE_VULKAN_OPWR"] = "1" + if "PROTON_CRASH_REPORT_DIR" in self.env: self.env["WINE_CRASH_REPORT_DIR"] = self.env["PROTON_CRASH_REPORT_DIR"]