proton: Add WINE_DISABLE_VULKAN_OPWR hack appid list.

CW-Bug-Id: #20680
This commit is contained in:
Paul Gofman 2022-06-28 10:20:01 -05:00 committed by Arkadiusz Hiler
parent a62a80be58
commit 7d4ca96ae1
2 changed files with 44 additions and 0 deletions

View File

@ -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. | | `vkd3dfl12` | | Force the Direct3D 12 feature level to 12, regardless of driver support. |
| `vkd3dbindlesstb` | | Put `force_bindless_texel_buffer` into `VKD3D_CONFIG`. | | `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. | | `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. | | `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. | | | `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. | | `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. |

43
proton
View File

@ -997,6 +997,46 @@ def default_compat_config():
"1017900", #Age of Empires: Definitive Edition "1017900", #Age of Empires: Definitive Edition
]: ]:
ret.add("nomfdxgiman") 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 return ret
class Session: class Session:
@ -1211,6 +1251,9 @@ class Session:
if "nomfdxgiman" in self.compat_config: if "nomfdxgiman" in self.compat_config:
self.env["WINE_DO_NOT_CREATE_DXGI_DEVICE_MANAGER"] = "1" 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: if "PROTON_CRASH_REPORT_DIR" in self.env:
self.env["WINE_CRASH_REPORT_DIR"] = self.env["PROTON_CRASH_REPORT_DIR"] self.env["WINE_CRASH_REPORT_DIR"] = self.env["PROTON_CRASH_REPORT_DIR"]