I’m on:
CachyOS, fully updated
RX 7900 XTX (RDNA3)
Using Proton-CachyOS as the compatibility tool for Steam games
Games that already offer FSR 3.1 / FSR4 in-game
CachyOS / Proton-CachyOS add some extra env vars for FSR4:
PROTON_FSR4_UPGRADE – generic FSR4 “upgrade to latest version” flag (aimed at RDNA4)
PROTON_FSR4_RDNA3_UPGRADE – RDNA3 helper that does the same thing, but also applies RDNA3-specific workaround settings and uses a different default DLL (4.0.0).
Official docs + articles basically say:
On RDNA3, use PROTON_FSR4_RDNA3_UPGRADE to enable FSR4, and it will download the library and set the necessary variables automatically.
That part matches what I see.
RDNA3: basic FSR4 enable (FSR 4.0.0)
For RDNA3, this is the simple working config for me:
PROTON_FSR4_RDNA3_UPGRADE=1 PROTON_FSR4_INDICATOR=1 %command%
What it does in practice:
PROTON_FSR4_RDNA3_UPGRADE=1
Downloads an FSR4 DLL,
Enables the RDNA3 WMMA workaround path,
Uses an RDNA3-optimized FSR4 4.0.0 by default (this is explicitly mentioned in Proton-CachyOS’ README).
PROTON_FSR4_INDICATOR=1
Shows the FSR4 watermark in the corner, so you can verify it’s actually active.
Once you’re happy that FSR4 is working, you can remove PROTON_FSR4_INDICATOR=1 if you don’t want the overlay.
This setup lines up with what the CachyOS wiki and third-party guides say for RDNA3: just set PROTON_FSR4_RDNA3_UPGRADE=1.
Where the FSR4 DLLs actually live
After enabling FSR4 on a few games, I checked my files and found:
~/.cache/protonfixes/upscalers
amdxcffx64_v4.0.0_…dll
amdxcffx64_v4.0.2_…dll
Proton-CachyOS release notes say:
Updated PROTON_(DLSS|XESS|FSR4|FSR3)_UPGRADE cache to hold the compressed archives instead of the extracted DLLs. If you want to remove the old files, delete ~/.cache/protonfixes/upscalers directory.
So a few important points:
~/.cache/protonfixes/upscalers/ is a user-wide cache, not per game.
It can hold multiple versions of the FSR4 DLL:
amdxcffx64_v4.0.0_… (FSR 4.0.0)
amdxcffx64_v4.0.2_… (FSR 4.0.2)
Any game using Proton-CachyOS with the FSR4 envs will reuse these cached files when upgrading FSR 3.1 → FSR4.
If something gets messy and you want to “start clean”, you can delete that cache:
rm -rf ~/.cache/protonfixes/upscalers
Next time you run a game with FSR4 enabled, Proton-CachyOS will re-download whatever it needs.
RDNA3 quirk: getting 4.0.2 to actually appear
By default, RDNA3 helper uses 4.0.0, which is the recommended version for RDNA3 in several guides because newer builds tend to be heavier.
If you want to specifically test FSR4 4.0.2 on RDNA3, you can set:
PROTON_FSR4_RDNA3_UPGRADE=4.0.2 PROTON_FSR4_INDICATOR=1 %command%
However, on my system there’s a small gotcha:
When I tried PROTON_FSR4_RDNA3_UPGRADE=4.0.2 without ever having used =1 before,
I didn’t see the 4.0.2 DLL show up in ~/.cache/protonfixes/upscalers, and the game didn’t seem to change.
After I had already run a game once with:
PROTON_FSR4_RDNA3_UPGRADE=1 %command%
(which downloaded the 4.0.0 DLL),
then switching to:
PROTON_FSR4_RDNA3_UPGRADE=4.0.2 %command%
finally produced an amdxcffx64_v4.0.2_…dll file and visible behavior consistent with FSR4 4.0.2.
So in practice on my RDNA3 setup it felt like:
Step 1: run once with PROTON_FSR4_RDNA3_UPGRADE=1 → ensures the basic FSR4 path is set up and 4.0.0 is cached.
Step 2: then switch to PROTON_FSR4_RDNA3_UPGRADE=4.0.2 → 4.0.2 appears in the cache and is used.
I’m not claiming this is “by design” – it might just be a small implementation quirk – but if someone sets =4.0.2 directly and nothing happens, doing one run with =1 first seems to help.
Tiny note for RDNA4 users
For completeness: on RDNA4 the official, documented way is to use the generic env var:
PROTON_FSR4_UPGRADE=1 %command%
This tells Proton-CachyOS to automatically download the latest FSR4 DLL and upgrade FSR 3.1 games to FSR4 on RDNA4 GPUs.
For RDNA3, the recommended path is PROTON_FSR4_RDNA3_UPGRADE as shown above.
Why I’m posting this
There are already a few threads and comments along the lines of:
“PROTON_FSR4_RDNA3_UPGRADE=1 not working”
“PROTON_FSR4_UPGRADE=1 does nothing on my system”
A lot of the confusion seems to come from:
not knowing that the DLLs are cached under ~/.cache/protonfixes/upscalers/, and
not being sure how PROTON_FSR4_RDNA3_UPGRADE behaves on RDNA3 with different values.
So if you’re on RDNA3 and want a quick mental model:
Start with:
PROTON_FSR4_RDNA3_UPGRADE=1 PROTON_FSR4_INDICATOR=1 %command%
to get a stable FSR4 4.0.0 baseline.
If you’re curious, try later:
PROTON_FSR4_RDNA3_UPGRADE=4.0.2 PROTON_FSR4_INDICATOR=1 %command%
and compare image quality / performance, especially if your cache already contains both 4.0.0 and 4.0.2 DLLs.
If any devs or other users see behavior different from this, it would be great to have more data points so the docs can be clarified even further.