From 8d7f593f9dd0977ce5b0a74e89ffe441fb16ab6e Mon Sep 17 00:00:00 2001 From: Arkadiusz Hiler Date: Tue, 9 Jul 2024 12:43:14 +0300 Subject: [PATCH] proton: Add PROTON_DXVK_D3D8 / dxvkd3d8. --- README.md | 1 + proton | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index cab55b4f..730e3999 100644 --- a/README.md +++ b/README.md @@ -291,6 +291,7 @@ the Wine prefix. Removing the option will revert to the previous behavior. | `wined3d` | `PROTON_USE_WINED3D` | Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11, d3d10, and d3d9. | | `nod3d11` | `PROTON_NO_D3D11` | Disable `d3d11.dll`, for d3d11 games which can fall back to and run better with d3d9. | | `nod3d10` | `PROTON_NO_D3D10` | Disable `d3d10.dll` and `dxgi.dll`, for d3d10 games which can fall back to and run better with d3d9. | +| `dxvkd3d8` | `PROTON_DXVK_D3D8` | Use DXVK's `d3d8.dll`. | | `noesync` | `PROTON_NO_ESYNC` | Do not use eventfd-based in-process synchronization primitives. | | `nofsync` | `PROTON_NO_FSYNC` | Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no `FUTEX_WAIT_MULTIPLE` support.) | | `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. | diff --git a/proton b/proton index f37f56a7..9f17bb3b 100755 --- a/proton +++ b/proton @@ -38,7 +38,7 @@ from random import randrange #To enable debug logging, copy "user_settings.sample.py" to "user_settings.py" #and edit it if needed. -CURRENT_PREFIX_VERSION="9.0-200" +CURRENT_PREFIX_VERSION="9.0-203" PFX="Proton: " ld_path_var = "LD_LIBRARY_PATH" @@ -803,6 +803,7 @@ class CompatData: use_dxvk_dxgi = not use_wined3d and \ not ("WINEDLLOVERRIDES" in g_session.env and "dxgi=b" in g_session.env["WINEDLLOVERRIDES"]) use_nvapi = 'disablenvapi' not in g_session.compat_config or 'forcenvapi' in g_session.compat_config + use_dxvk_d3d8 = "dxvkd3d8" in g_session.compat_config builtin_dll_copy = os.environ.get("PROTON_DLL_COPY", #dxsetup redist @@ -853,6 +854,7 @@ class CompatData: str(use_dxvk_dxgi), builtin_dll_copy, str(use_nvapi), + str(use_dxvk_d3d8), )) # check whether any prefix config has changed @@ -937,6 +939,11 @@ class CompatData: else: wined3dfiles.append("dxgi") + if use_dxvk_d3d8: + dxvkfiles.append("d3d8") + else: + wined3dfiles.append("d3d8") + for f in wined3dfiles: try_copy(g_proton.default_pfx_dir + "drive_c/windows/system32/" + f + ".dll", "drive_c/windows/system32", prefix=self.prefix_dir, track_file=tracked_files, link_debug=True) @@ -1348,6 +1355,7 @@ class Session: if not self.check_environment("PROTON_USE_WINED3D", "wined3d"): self.check_environment("PROTON_USE_WINED3D11", "wined3d") + self.check_environment("PROTON_DXVK_D3D8", "dxvkd3d8") self.check_environment("PROTON_NO_D3D11", "nod3d11") self.check_environment("PROTON_NO_D3D10", "nod3d10") self.check_environment("PROTON_NO_ESYNC", "noesync")