An unofficial workaround until CD PROJEKT RED or Valve fix this properly. As soon as the 5.0 executable sees Wine, it turns off Streamline (DLSS SR/RR, DLSS-G, Reflex), ray tracing, path tracing and FSR frame generation. Everything here brings them back.
Important
The exe patch script supports only bin/x64_dx12/witcher3.exe 5.0.0.1048522 (patch 5.01, 2026-10-08, Steam build 25773555, sha256 2df76539…b101), 5.0.0.1044392 (the 2026-10-01 5.00c hotfix, Steam build 25646871, sha256 9406eccc…fe51) and 5.0.0.1041720 (the 2026-09-29 "Remastered" release, Steam build 25575366, sha256 c272b2c2…c7e25). It picks the build by size, checks the sha256, and refuses anything else, so a future game update needs a script update. The GOG exe passed the same hash check in one report. Wineland and the sed one-liner don't depend on the build.
| You use | Do this | You get |
|---|---|---|
| Steam, any GPU | Proton Wineland 11.0-20260930 or newer, original exe | Everything, nothing to patch |
| Proton Experimental (2026-10-02 or newer) | The sed one-liner |
Everything |
| GE-Proton11-7 | The script | DLSS SR/RR, Reflex, DLSS-G. RT and path tracing also need a newer vkd3d-proton |
| AMD / Intel on another Proton | The script with --rt-only |
RT, path tracing, FSR FG |
| GOG through Heroic, or Lutris / Faugus | Wineland plus the manual step in #75 / #76 / #77, or the sed one-liner if that step doesn't stick (confirmed through Faugus by @micker) |
Everything |
| A laptop, or any PC with the iGPU enabled | Read Hybrid GPUs first |
"Everything" means DLSS SR/RR, Reflex and DLSS-G on NVIDIA (DLSS-G needs an RTX 40 or newer), plus ray tracing, path tracing and FSR frame generation on any GPU.
Contents: Wineland · Other Protons · Ray tracing · Troubleshooting · DLSS 5 NR · Notes · Under the hood
Tip
Proton Wineland 11.0-20260930 or newer (nanomatters' proton-cachyos) hides Wine from witcher3.exe only, through a per-game fix (HideWineExports for that exe). The game files stay untouched, so game updates do not break it. It also carries the vkd3d-proton fixes ray tracing needs (the BLAS size fix, tight alignment, the RADV shader fix) and turns NVAPI off on non-NVIDIA GPUs.
- Download the newest
proton-wineland-11.0-<date>-x86_64_v3.tar.xz(or thex86_64one for CPUs without AVX2) from the release page and extract it into~/.local/share/Steam/compatibilitytools.d/. As of 2026-10-05 that is 20261005, which also smooths out the frame pacing swings NVIDIA Reflex caused in this game. It is a regular Proton build, not tied to CachyOS. - Restart Steam, then pick it in The Witcher 3 → Properties → Compatibility.
- Use it with the original exe: if you patched it with the script, run
python3 w3_proton_patch.py --restorefirst (or Steam's "Verify integrity of game files").
- The per-game fix runs when Steam launches the game. Heroic, Lutris and Faugus need a manual step for now: #75, #76, #77.
- Tested here on 5.00c and 5.01 (RTX 4090, 615.71.09): with the unmodified exe, Streamline loads, DLSS SR/RR, DLSS-G and the RT options are all available. A session of over 15 minutes with path tracing and DLSS-G on ran with no hang and no Xid.
GE-Proton: a protonfix that hides Wine from this game automatically was merged on 2026-10-10 (umu-protonfixes#641), and GE's tree now also has a vkd3d-proton with #3308 and #3332, which the game needs once Wine is hidden. Both ship in the next GE-Proton after 11-7. Until then, GE-Proton11-7 needs one of the options below plus a newer vkd3d-proton.
From @Saancreed: rename the string the game looks up, so the lookup fails and every Wine check goes away at once.
cd "<Steam library>/steamapps/common/The Witcher 3/bin/x64_dx12"
sed -i s/wine_get_version/frog_get_version/ witcher3.exe- This behaves like
--rtbelow: DLSS, RT and the non-Wine buffer alignment are all exposed. So it needs a vkd3d-proton with #3308, or the game crashes at startup (GE-Proton11-7's does not have it), and the RT fixes before turning RT on. Proton Experimental has them since its 2026-10-02 update (vkd3d-proton44cf7c20, which includes #3332 and the dxil-spirv fix; if Steam hasn't updated it yet, the bleeding-edge beta has them too). A vkd3d-proton master build or nanomatters'wineland-11.0-20260930have them as well. - On AMD, also
PROTON_DISABLE_NVAPI=1on GE-Proton and other Protons that don't do it yet. Proton Experimental (since 2026-10-01) and Wineland already turn NVAPI off for this game when no NVIDIA driver is loaded. - It changes the exe, so the script then refuses it. Use one or the other; Steam's "Verify integrity of game files" undoes either.
Close the game first. Python 3, no dependencies.
python3 w3_proton_patch.py # NVIDIA: DLSS SR/RR, Reflex, DLSS-G (default Steam path)
python3 w3_proton_patch.py /path/to/witcher3.exe
python3 w3_proton_patch.py --rt # NVIDIA: the above + RT and path tracing
python3 w3_proton_patch.py --rt-only # AMD / Intel: RT, path tracing and FSR frame generation
python3 w3_proton_patch.py --dry-run # show the state, change nothing
python3 w3_proton_patch.py --restore # undo everything| GPU | Run | You get |
|---|---|---|
| NVIDIA | default | DLSS SR/RR, Reflex and DLSS-G. Nothing else needed |
| NVIDIA | --rt |
The above plus ray tracing and path tracing, which need a recent vkd3d-proton (below) |
| AMD / Intel | --rt-only |
Ray tracing, path tracing and FSR frame generation. On AMD, RT also needs the dxil-spirv fix (below) |
- The DLSS patches are NVIDIA only: with OptiScaler/fakenvapi they made the game exit in one report, so AMD and Intel use
--rt-only. - A copy of the original is saved once as
witcher3.exe.orig-<version>(e.g.witcher3.exe.orig-5.0.0.1044392). Steam's "Verify integrity of game files" also restores the original. - A game update replaces the exe and the offsets change. Run the script again only if it says the build is supported.
Then choose DLSS and Frame Generation in Options → Graphics.
HideWineExports=Y, or "Hide Wine version" in winecfg (proton-cachyos, wine-staging), hides Wine from the game entirely, which exposes DLSS and RT without touching the exe. It still needs a vkd3d-proton with #3308 and the RT fixes. With those it was reported working on NVIDIA in #3226 and on AMD (@drizzt, GOG version through Heroic).
- On proton-cachyos the per-app key did nothing and the global
HKCU\Software\Wine\HideWineExports=Yworked (@vharmash, RX 9070). Wineland's per-game fix uses the per-app key and works. - Older proton-cachyos builds crash with it because their lsteamclient lacks
SteamUtils011.
Patch 5.01 fixes a case where the game picked the wrong GPU, so try without the settings below first. With an integrated GPU enabled, the game's hardware detection can pick the iGPU instead of the dedicated one: Low preset, RT locked, settings that "revert", DLSS reported as not supported, and very low FPS. Found by @Soyalexf. Hide the iGPU from the game by pointing Vulkan at the dedicated GPU's driver only, in the launch options:
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/nvidia_icd.json %command% # NVIDIA
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.json %command% # AMDOn NVIDIA laptops with PRIME offload, __NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only %command% does the same.
If none of that helps, turning the iGPU off in the BIOS (dGPU-only or MUX mode, on laptops that have it) takes it out of the picture entirely. That fixed the frame rate on an RTX 3050 laptop (@San10deep). DLSS still needs one of the fixes above to show up.
--rt, --rt-only, the one-liner and hiding Wine all clear the Wine flag, so RT and path tracing become selectable. What else is needed depends on the GPU.
Warning
NVIDIA, drivers 590 and newer: vkd3d-proton #3332 (by @Stanni97, merged 2026-09-30). Without it, RT hangs the GPU within about a minute (Xid 109 / VK_ERROR_DEVICE_LOST).
- The cause: vkd3d-proton's Witcher 3 workaround asked for BLAS sizes with
ALLOW_UPDATEforced on. On NVIDIA that reports up to ~5x less build scratch than BLAS built without it actually use. - Tested here on 5.0 (RTX 4090, 615.71.09) with vkd3d-proton master
4d06d745plus #3332, nothing else: about 29 minutes, ~17 with RT and ~12 with path tracing, DLSS RR and DLSS-G on. No hang, and zeroregister_rtas_scratch_rangewarnings.
Warning
AMD (RADV): dxil-spirv PR #311 (by @drizzt, merged 2026-09-30 and in vkd3d-proton master). Without it, RADV crashes in vkCreateRayTracingPipelinesKHR while the game loads, because one of the game's path-tracing shaders translates to invalid SPIR-V (Mesa #16450).
With it, RT was reported working on a Radeon 7900X (@drizzt), and with #3332 as well on an RX 6800 XT, ~20 minutes stable (@Soyalexf). @Soyalexf's scripts for AMD: https://github.com/Soyalexf/witcher3-rt-amd-proton
Note
No build needed on Proton Experimental or Wineland. Proton Experimental has both fixes since its 2026-10-02 update (if yours is older: Steam → Library → Tools → Proton Experimental → Properties → Betas → bleeding-edge), and so does nanomatters' wineland-11.0-20260930. On another Proton, build vkd3d-proton master as below.
Step by step: vkd3d-proton master (about 10 minutes, for GE-Proton and other Protons)
Most of the time is the build. Close Steam first. The commands are bash: on fish or another shell, run bash first.
# 1. Build tools
sudo pacman -S --needed git meson ninja glslang mingw-w64-gcc wine # Arch, CachyOS
# sudo apt install git meson ninja-build glslang-tools mingw-w64 mingw-w64-tools # Debian, Ubuntu
# 2. vkd3d-proton master (it already has #3332, #3308 and the dxil-spirv fix for AMD)
cd ~
git clone --recursive https://github.com/HansKristian-Work/vkd3d-proton.git
cd vkd3d-proton
# 3. Build (64-bit is all this game needs)
meson setup build --cross-file build-win64.txt --buildtype release -Dstrip=true
ninja -C build
# 4. A copy of your Proton with the new DLLs.
# P = your GE-Proton folder name in compatibilitytools.d (it may be GE-Proton11-7 or GE-Proton11-7-x86_64)
cd ~/.local/share/Steam/compatibilitytools.d
P=GE-Proton11-7
cp -a "$P" "$P-w3"
sed -i "s/\"$P\"/\"$P-w3\"/g" "$P-w3/compatibilitytool.vdf"
D="$P-w3/files/lib/wine/vkd3d-proton/x86_64-windows"
rm -f "$D/d3d12.dll" "$D/d3d12core.dll"
cp ~/vkd3d-proton/build/libs/d3d12/d3d12.dll ~/vkd3d-proton/build/libs/d3d12core/d3d12core.dll "$D/"- Start Steam. In The Witcher 3 → Properties → Compatibility, pick the new
...-w3entry. - Run
python3 w3_proton_patch.py --rt(NVIDIA) or--rt-only(AMD / Intel), then turn on ray tracing / path tracing in the game.
| Symptom | What to do |
|---|---|
| DLSS still greyed out after patching | Run once with PROTON_LOG=1 and check that sl.common.dll and sl.dlss.dll get loaded. If only sl.interposer.dll shows up, the exe that actually runs is not the patched one. With a plain Wine runner instead of Proton, also check that dxvk-nvapi is set up. |
| Crash at startup right after hiding Wine | The vkd3d-proton is older than #3308 (GE-Proton11-7's is). Use a newer one, or the script's --rt / --rt-only, which keep Wine's buffer alignment. |
Crash in Steam.dll at startup |
The remaster needs SteamUtils011, which older proton-cachyos builds (20260703) lack. With an outdated Steam client, recreating a missing ~/.local/share/Steam/steam/games folder let Steam update itself (@Patola). |
| Low preset, RT locked, DLSS "not supported", very low FPS | The game picked the iGPU: see Hybrid GPUs. |
GOG through Heroic: witcher3.exe runs with no window |
The GOG update leaves empty folders under content/ and dlc/, and the game hangs on them. From the game folder, find content dlc -depth -type d -empty -delete fixed it (Heroic #5941, confirmed by @Ritaku02). |
| Stutter while signed in to a CDPR account | While signed in, the game checks the connection about 10 times a second, and under Wine each check re-reads the stats of every network adapter; one slow NIC driver is enough (profiled by @ninele7 in Proton#607). Wineland 11.0-20261011 ships a fix for it. On other Protons, signing out of the CDPR account avoids it. |
| "Frozen" loading screen after dying | Under Proton, "Load last save" from the death screen can take 3–4 minutes, while the same save loads in seconds from the main menu. Reported on Steam Deck and desktop Linux, not on Windows; one report says Proton 11-02 cut it to ~30 s (Steam thread). For now, quit to the main menu and load from there. |
Random crash in menus with a live 3D scene (inventory, map, alchemy, character), witcher3.exe+0x3317E3 |
A race in the game itself, much more common under Wine. @p-valentin's fix patches it: for 5.00c, and for 5.01 (the same patch with the 5.01 addresses; @Snuffles20 crashed the unpatched 5.01 within minutes and not since). It needs the unmodified exe: on Wineland just run it; with the sed one-liner, apply it first and the sed after. It can't be combined with this gist's script. |
| AMD: crash with Mesa's anti-lag layer on | Add DISABLE_LAYER_MESA_ANTI_LAG=1 to the launch options (@vharmash). |
Once DLSS works in the game, you can add DLSS 5 Neural Rendering (NR) on top of it with OptiScaler. My own setup is in a kit: W3-DLSS-NR-kit-8f603d70.zip, with the OptiScaler_DLSSNR build 8f603d70, the NR model and my OptiScaler.ini. Tested on an RTX 4090 with path tracing, Ray Reconstruction and DLSS-G: 50–60 fps at 3440x1440 with DLSS Quality.
- Extract it into
bin/x64_dx12, next towitcher3.exe. If your NVIDIA driver isn't 615.71.09, replace_nvngx.dllwith your own:cp /usr/lib/nvidia/wine/_nvngx.dll <game>/bin/x64_dx12/. - Launch options:
WINEDLLOVERRIDES="dxgi=n,b" %command%. - In game, pick DLSS. F7 turns NR on and off, and Home opens the OptiScaler menu.
- The kit's ini already has
ApplyAfterRR=true. Without it, NR skips every frame while Ray Reconstruction is on. - In the tests published so far, NR costs around 30% of the frame rate with path tracing.
- If the GPU hangs (
Xid 109) only with NR on, reset any GPU overclock first. NR is much heavier than DLSS upscaling, and an overclock that was stable in other games hung here until it was reset (@tuxrinku). - If NR doesn't run,
OptiScaler.lognext to the exe says why: look for the lines starting withDLSS-NR. - Unofficial; single player only.
- Tested here on Linux with an RTX 4090. Reported working with DLSS on RTX 3060, 4060 Laptop, 4070, 4090, 5070 Ti and 5090, and with RT on AMD (Radeon 7900X, RX 6800 XT, RX 7900 XTX, RX 9070). DLSS-G needs an RTX 40 or newer.
- HairWorks works under Proton. It is built into the DX12 exe, and the
NVHair*.dll/GFSDK_HairWorksfiles next to it are not used, so their absence from aPROTON_LOGmeans nothing. Every graphics preset, RT ones included, turns it back off, so set it after choosing a preset. Path-traced hair stays unavailable: it needs Linear Swept Spheres, which NVIDIA lists for RTX 50 only and dxvk-nvapi does not report.
Caution
Modifying the executable may be against the game's EULA. It does not touch any DRM, only the platform check, and it is fully reversible.
Why DLSS is missing under Proton
The 5.0 executable asks ntdll for wine_get_version. When it finds it (Wine/Proton), the game does three things:
- Skips NVIDIA Streamline entirely. It never calls
slInit, so DLSS Super Resolution, Ray Reconstruction, DLSS Frame Generation and Reflex are all reported as unsupported. - Sets a cached "Wine or Steam hardware" flag. That flag forces DLSS-G unsupported, zeroes the ray tracing capability (all RT and path tracing options greyed out), skips the path-tracing shaders, disables FSR frame generation, and changes buffer alignment.
- Nothing else. It is not the NVAPI IDs or the
D3DKMTQueryAdapterInfotype 31 queries seen in the logs.
Root-cause details: ValveSoftware/Proton#607. RT hang details: HansKristian-Work/vkd3d-proton#3226.
Patches (file offsets)
| 5.0.0.1041720 | 5.0.0.1044392 (5.00c) | 5.0.0.1048522 (5.01) | Original → new | Effect |
|---|---|---|---|---|
0x1B709CB |
0x1B7169B |
0x1B77ECB |
75 42 → 90 90 |
Default and --rt: creates the Streamline manager under Wine (DLSS SR/RR, Reflex) |
0x1B759A0 |
0x1B76620 |
0x1B7CE30 |
74 → EB |
Default and --rt: DLSS-G support comes from Streamline instead of the Wine flag |
0x1EE2A53 |
0x1EDE8F3 |
0x1EE4C33 |
75 0B → 90 90 |
--rt, --rt-only: the Wine flag no longer set (RT, path tracing, FSR FG) |
0x1EE09F7 |
0x1EDC897 |
0x1EE2BD7 |
75 → EB |
--rt, --rt-only: keep Wine's buffer alignment (needed only on vkd3d-proton older than #3308) |
0x106E0D |
— | — | 20 00 00 00 → 00 01 00 00 |
Old --rt only, no longer applied: RT BLAS scratch default 32 → 256 MiB |
@d1g1talpump found the 5.00c offsets first, in a fork of this gist that is no longer online. The offsets were checked independently here before being added. The 5.01 offsets were found here and checked in game on Proton Experimental (RTX 4090): DLSS SR/RR, DLSS-G, RT and path tracing all available.
Buffer alignment, and what was superseded
Both RT options also keep the buffer alignment behaviour Wine gets. That is only needed on vkd3d-proton older than #3308, such as the one in GE-Proton11-7: there, clearing the flag alone makes the game request tight-aligned 256-byte buffers, which get rejected, and the game crashes within seconds. On newer builds it is harmless.
Superseded: vkd3d-rtas-prebuild-x8.patch in this gist (×8 prebuild sizes) and the game-side scratch buffer 32 → 256 MiB. Both were stopgaps before the cause was known; #3332 alone is enough. The script published on 2026-09-29 still applied the scratch patch with --rt by mistake. It is harmless (it was the earlier stable setup, and costs ~224 MiB of VRAM); running --rt again with the current script takes it out, and --restore undoes it too.
The Witcher 3: Wild Hunt — Remastered (v5.0) on Linux
Verified fix for Ray Tracing, Path Tracing and FSR Frame Generation under Proton, on AMD.
Tested on 2026-10-03 with:
bin/x64_dx12/witcher3.exe, size 90,832,336 bytesc272b2c2e61f84c758e28fab69ab2915944dd1e539dbb435fae9fc67494c7e25proton-wineland-11.0-20260930-x86_64(nanomatters' proton-cachyos)amdgpu, PCI id1002:73df)The same method applies to Steam, Heroic and Lutris; only the way you pass environment
variables and the runner changes. The exe patch itself is launcher-agnostic.
TL;DR
proton-wineland-11.0-20260930(it carries vkd3d-proton #3332, the buffer-alignmentfix #3308, and the RADV dxil-spirv fix #311).
--rt-only(AMD / Intel) on the original, unmodifiedwitcher3.exe.PROTON_DISABLE_NVAPI=1 ENABLE_LAYER_MESA_ANTI_LAG=0Background: why the options are greyed out
The 5.0 executable probes
ntdllfor the exportwine_get_version. When it finds it(the game is running under Wine/Proton), it does two separate things:
slInit, so DLSS SuperResolution, Ray Reconstruction, DLSS Frame Generation and Reflex all report as
unsupported. This is the part the
--rtmode fixes; it is irrelevant on AMD.zeroes the ray tracing capability (all RT / path tracing options greyed out),
skips the path-tracing shaders, disables FSR Frame Generation, and changes buffer
alignment.
The second point is what we are fixing with
--rt-only.Symptom A — instant hang in a tight retry loop
If you "fix" the Wine detection by renaming the string the game looks up
(
sed -i s/wine_get_version/frog_get_version/ witcher3.exe), the game now believes it ison Windows and hard-requires Streamline. It then probes NVAPI in the menu. On a
non-NVIDIA GPU,
dxvk-nvapiinit fails and the game retries in a tight loop forever,loading and unloading
d3d11.dll+nvapi64.dllhundreds of times, until it hangs.This is exactly what our first log showed:
Do not use the
frog_get_versionrename on AMD. If you already did,PROTON_DISABLE_NVAPI=1is what stops the loop (it removesnvapi64.dllentirely, andStreamline's no-NVIDIA fallback becomes clean), but the exe patch below is the better
route because it survives game updates and does not force the Streamline path.
Symptom B — game launches, but RT and FSR Frame Gen stay greyed out
This is the state after restoring the original exe with only the environment variables
applied. The log shows Streamline half-initialised:
sl.interposer.dllloads but its plugins (sl.common.dll,sl.dlss.dll,sl.reflex.dll)do not, because the game took the "Wine" branch and never called
slInit. This isexpected and harmless for AMD — RT and FSR go through FidelityFX
(
amd_fidelityfx_*.dll), not Streamline.--rt-onlyclears the Wine flag that gates RTand FSR FG; it deliberately leaves the Streamline/DLSS patches alone.
Step 1 — get the runner right
The runner must contain a recent vkd3d-proton:
#3332— the BLAS scratch-size fix. Without it, RT hangs (Xid 109/VK_ERROR_DEVICE_LOST) on NVIDIA 590+ within about a minute.#3308— tight buffer alignment. Without it, clearing the Wine flag alone makes thegame request tight-aligned 256-byte buffers that get rejected, and it crashes within
seconds. This is why GE-Proton11-7 and Proton 11.0-2 do not work for RT here.
#311— required on AMD/RADV. Without it, RADV crashes invkCreateRayTracingPipelinesKHRwhile path-tracing shaders load, because one of thegame's shaders translates to invalid SPIR-V.
proton-wineland-11.0-20260930has all three. It also hides Wine from this game's exe viaa per-game fix, but that fix only triggers when Steam launches the game — Faugus,
Heroic and Lutris need a manual step for now (proton-cachyos issues #75, #76, #77), which
is why we patch the exe instead.
Extract the runner into your compatibility-tools directory and symlink it, e.g.:
Pick the
_v3tarball only if your CPU has AVX2; otherwise use the plainx86_64one.Step 2 — patch the exe with
--rt-onlyDo this on the original, unmodified
witcher3.exe. If you previously ran thefrog_get_versionrename, restore first (Steam: "Verify integrity of game files"; or keepa copy of the original around).
python3 w3_proton_patch.py --rt-only "/path/to/The Witcher 3/bin/x64_dx12/witcher3.exe"Expected output for build 5.0.0.1041720:
What
--rt-onlywrites (and what it leaves alone):0x1EE2A5375 0B→90 900x1EE09F775→EB0x1B709CB75 42→90 900x1B759A074→EB0x106E0D20 00 00 00→00 01 00 00The script verifies the build by file size and sha256 before writing, and refuses any
unrecognized build. It saves a one-time backup as
witcher3.exe.orig-<version>.Verify at any time without changing anything:
python3 w3_proton_patch.py --rt-only --dry-run "/path/to/witcher3.exe"Revert everything:
Step 3 — launch environment variables
Add these to the game's launch arguments / environment:
PROTON_DISABLE_NVAPI=1— removesnvapi64.dllcompletely. Without it, a game thatreached the Streamline path retries NVAPI forever on a non-NVIDIA GPU (Symptom A).
ENABLE_LAYER_MESA_ANTI_LAG=0— Mesa's anti-lag Vulkan layer crashes this game underWine once AMDAntiLag engages (
0xc0000005insidelibVkLayer_MESA_anti_lag.so). Disableit.
Faugus Launcher
Put the variables in the game's launch arguments field (Faugus turns any
KEY=VALUEtoken into a real environment variable). Then make sure the game's Runner is
proton-wineland-11.0-20260930— not GE-Proton.Steam
Launch options:
and set Properties → Compatibility to the Wineland build. On Steam, Wineland's per-game
HideWineExportsfix may make the exe patch unnecessary; the--rt-onlypatch does notconflict with it if you use both.
Step 4 — in-game
Options → Graphics. Ray tracing and FSR Frame Generation should no longer be greyed out.
Start conservatively: enable ray tracing first, without path tracing, on a low preset,
to confirm the RADV path-tracing shader fix is actually present. Turn on path tracing only
after RT is stable.
HairWorks works under Proton (it is built into the DX12 exe; the
NVHair*.dll/GFSDK_HairWorksfiles are not used — their absence from a log means nothing). Everygraphics preset, RT ones included, turns HairWorks back off, so set it after choosing a
preset. Path-traced hair is unavailable: it needs Linear Swept Spheres, which dxvk-nvapi
does not report.
Why each earlier attempt failed (short version)
frogrename instead, Neon→ NVAPI retry loop (Symptom A)sed s/wine_get_version/frog_get_version/(rename)raise (22)PROTON_DISABLE_NVAPI=1 ENABLE_LAYER_MESA_ANTI_LAG=0--rt-only+ the two env varsGotchas
witcher3.exeand theoffsets change. The script will refuse the new build ("unexpected size …") until it is
updated.
--restore, or Steam's "Verify integrity", gets you back to stock.frog_get_versionwith--rt-only. Pick one. The rename forces theStreamline/NVAPI path;
--rt-onlydeliberately avoids it. If you renamed,--restorefirst.
#3308 and the RADV dxil-spirv fix. Use Wineland 11.0-20260930 or newer, Proton
Experimental bleeding-edge (its 2026-10-01 build ships vkd3d-proton
44cf7c20), ora self-built vkd3d-proton master.
bin/ddi/Steam.dllat startupbecause the remaster needs
SteamUtils011. Use a current build."reverting" settings and very low FPS. Point Vulkan at the dGPU only:
VK_DRIVER_FILES=/usr/share/vulkan/icd.d/radeon_icd.json(AMD) or.../nvidia_icd.json(NVIDIA).--rt-only(
SL not initialized or no plugins found). They do not affect RT or FSR.Reproduction checklist
5.0.0.1041720(size 90,832,336, sha256c272b2c2…c7e25) or the5.00chotfix5.0.0.1044392(size 90,674,640).witcher3.exeis the original (nofrog_get_versionrename).proton-wineland-11.0-20260930or newer (vkd3d-proton with #3332, #3308,and RADV dxil-spirv #311).
python3 w3_proton_patch.py --rt-only ...applied;0x1EE2A53and0x1EE09F7readpatchedin--dry-run.PROTON_DISABLE_NVAPI=1 ENABLE_LAYER_MESA_ANTI_LAG=0.Credits
w3_proton_patch.pyand the root-cause analysis — gabrielmaialva33, gist"The Witcher 3 5.0 on Proton/Linux: re-enable DLSS, DLSS-G and ray tracing":
https://gist.github.com/gabrielmaialva33/33ebb2542f0513d55100b22aa2149ff5
(the
5.00coffsets were first found by @d1g1talpump).https://github.com/nanomatters/proton-cachyos/releases
dxil-spirv #311 (RADV path tracing).
PROTON_DISABLE_NVAPI=1+ anti-lag findings on AMD — @vharmash, in the gist comments.#75 / #76 / #77 (manual
HideWineExportsfor non-Steam launchers).Unofficial workaround until CD PROJEKT RED or Valve fix this properly.