proton: Add PROTON_HEAP_ZERO_MEMORY runtime config option.

And enable it for Helldivers 2.

CW-Bug-Id: #23394
This commit is contained in:
Paul Gofman 2024-02-09 11:53:56 -06:00
parent d3e49cc154
commit b3d9b1c0a0

9
proton
View file

@ -1109,6 +1109,11 @@ def default_compat_config():
]: ]:
ret.add("heapdelayfree") ret.add("heapdelayfree")
if appid in [
"553850", #Helldivers 2
]:
ret.add("heapzeromemory")
if appid in [ if appid in [
"2630", #Call of Duty 2 "2630", #Call of Duty 2
"1060210", #Disaster Report 4: Summer Memories "1060210", #Disaster Report 4: Summer Memories
@ -1312,6 +1317,7 @@ class Session:
self.check_environment("PROTON_SET_STEAM_DRIVE", "steamdrive") self.check_environment("PROTON_SET_STEAM_DRIVE", "steamdrive")
self.check_environment("PROTON_NO_XIM", "noxim") self.check_environment("PROTON_NO_XIM", "noxim")
self.check_environment("PROTON_HEAP_DELAY_FREE", "heapdelayfree") self.check_environment("PROTON_HEAP_DELAY_FREE", "heapdelayfree")
self.check_environment("PROTON_HEAP_ZERO_MEMORY", "heapzeromemory")
self.check_environment("PROTON_DISABLE_NVAPI", "disablenvapi") self.check_environment("PROTON_DISABLE_NVAPI", "disablenvapi")
self.check_environment("PROTON_FORCE_NVAPI", "forcenvapi") self.check_environment("PROTON_FORCE_NVAPI", "forcenvapi")
self.check_environment("PROTON_HIDE_APU", "hideapu") self.check_environment("PROTON_HIDE_APU", "hideapu")
@ -1347,6 +1353,9 @@ class Session:
if "heapdelayfree" in self.compat_config: if "heapdelayfree" in self.compat_config:
self.env["WINE_HEAP_DELAY_FREE"] = "1" self.env["WINE_HEAP_DELAY_FREE"] = "1"
if "heapzeromemory" in self.compat_config:
self.env["WINE_HEAP_ZERO_MEMORY"] = "1"
if "vkd3dbindlesstb" in self.compat_config: if "vkd3dbindlesstb" in self.compat_config:
append_to_env_str(self.env, "VKD3D_CONFIG", "force_bindless_texel_buffer", ",") append_to_env_str(self.env, "VKD3D_CONFIG", "force_bindless_texel_buffer", ",")