From c9540c216623e95ecf559106608e9f9b7466a0ee Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Mon, 15 Mar 2021 13:13:36 -0500 Subject: [PATCH] proton: Add PROTON_HEAP_DELAY_FREE runtime config option --- README.md | 1 + proton | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/README.md b/README.md index 05414c6c..490ba8fe 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,7 @@ the Wine prefix. Removing the option will revert to the previous behavior. | noxim | PROTON_NO_XIM | Enabled by default. Do not attempt to use XIM (X Input Methods) support. XIM support is known to cause crashes with libx11 older than version 1.7. | | nativevulkanloader | | Use the Vulkan loader shipped with the game instead of Proton's built-in Vulkan loader. This breaks VR support, but is required by a few games. | | forcelgadd | PROTON_FORCE_LARGE_ADDRESS_AWARE | Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. Enabled by default. | +| heapdelayfree| PROTON_HEAP_DELAY_FREE| Delay freeing some memory, to work around application use-after-free bugs. | | gamedrive | PROTON_SET_GAME_DRIVE | Create an S: drive which points to the Steam Library which contains the game. | | noforcelgadd | | Disable forcelgadd. If both this and `forcelgadd` are set, enabled wins. | | 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. | diff --git a/proton b/proton index 67f7ac72..0084a547 100755 --- a/proton +++ b/proton @@ -730,6 +730,7 @@ class Session: self.check_environment("PROTON_HIDE_NVIDIA_GPU", "hidenvgpu") self.check_environment("PROTON_SET_GAME_DRIVE", "gamedrive") self.check_environment("PROTON_NO_XIM", "noxim") + self.check_environment("PROTON_HEAP_DELAY_FREE", "heapdelayfree") if "noesync" in self.compat_config: self.env.pop("WINEESYNC", "") @@ -756,6 +757,9 @@ class Session: if "forcelgadd" in self.compat_config: self.env["WINE_LARGE_ADDRESS_AWARE"] = "1" + if "heapdelayfree" in self.compat_config: + self.env["WINE_HEAP_DELAY_FREE"] = "1" + if "vkd3dbindlesstb" in self.compat_config: append_to_env_str(self.env, "VKD3D_CONFIG", "force_bindless_texel_buffer", ",")