README.md
# The Witcher 3 5.0 on Proton: re-enable DLSS, DLSS-G and ray tracing
**What this is:** an unofficial workaround until CD PROJEKT RED or Valve fix this properly.
**Supports only:** `bin/x64_dx12/witcher3.exe` **5.0.0.1041720** (the 2026-09-29 "Remastered" update, Steam build 25575366, sha256 `c272b2c2…c7e25`). The script refuses any other file. The GOG exe passed the same hash check in one report, so it looks identical.
**Which option for which GPU:**
- **NVIDIA:** the default run gives DLSS SR/RR, Reflex and DLSS-G, and needs only this script. `--rt` adds ray tracing and path tracing, and that part needs a recent vkd3d-proton (below).
- **AMD / Intel:** use `--rt-only`. It gives ray tracing, path tracing and FSR frame generation, without the DLSS patches, which are NVIDIA only (with OptiScaler/fakenvapi they made the game exit in one report). On AMD, RT also needs a vkd3d-proton with a dxil-spirv fix (below).
- **Laptops and other hybrid GPUs:** read "Hybrid GPUs (laptops)" below first.
This file has been truncated. show original
vkd3d-rtas-prebuild-x8.patch
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c
index 44685730..3b531c9d 100644
--- a/libs/vkd3d/device.c
+++ b/libs/vkd3d/device.c
@@ -7946,6 +7946,25 @@ static void STDMETHODCALLTYPE d3d12_device_GetRaytracingAccelerationStructurePre
info->UpdateScratchDataSizeInBytes = size_info.updateScratchSize;
}
+ /* LOCAL WORKAROUND (vkd3d-proton #3226): Witcher 3 RT hangs on NVIDIA 590+ unless the RTAS result and
+ * scratch sizes reported to the application are inflated. x8 by default;
This file has been truncated. show original
w3_proton_patch.py
#!/usr/bin/env python3
"""Re-enable DLSS / DLSS-G (and optionally ray tracing) in The Witcher 3 5.0 under Proton/Wine.
The Witcher 3 5.0.0.1041720 ("Remastered", DX12, Steam build 25575366) detects Wine through
GetProcAddress(ntdll, "wine_get_version") and then deliberately skips NVIDIA Streamline (so DLSS SR/RR,
DLSS Frame Generation and Reflex are unavailable) and forces ray tracing / path tracing off.
This script flips those checks in bin/x64_dx12/witcher3.exe. It only accepts that exact build.
python3 w3_proton_patch.py [path/to/witcher3.exe] DLSS SR/RR, Reflex and DLSS-G
python3 w3_proton_patch.py --rt [path/to/witcher3.exe] also RT and path tracing (read the README first:
This file has been truncated. show original