This is the third Pragmata-related post on this blog. I already wrote about forcing 4K in Steam games on KDE Wayland (Pragmata was the trigger) and streaming the desktop to other rooms with Sunshine. This one is about the part of the menu that goes grey if you’re on AMD: DLSS, DLSS Frame Generation, Reflex.

DLSS itself will never run on an AMD card — DLSS targets NVIDIA tensor cores specifically, regardless of whether your AMD card has ML hardware of its own (RDNA 4 does). But the game’s menu items for DLSS upscaling and DLSS Frame Generation can be unlocked, intercepted, and routed to FSR underneath. The end result is frame generation working in Pragmata on AMD.

Path tracing stays effectively NVIDIA-only on Linux today, but for a less obvious reason than the menu lock suggests. Capcom hard-gates path tracing to NVIDIA cards in the menu, and even if you patch around that, vkd3d-proton crashes on path-tracing enable. Standard ray tracing (GI, reflections) does work on AMD once you bypass Pragmata’s Wine detection — see below.

My setup

  • OS: CachyOS, KDE Plasma 6 on Wayland
  • GPU: AMD Radeon RX 9070 XT (RDNA 4)
  • Display: 4K@120Hz over HDMI
  • Steam: Proton GE (latest)

Nothing here is CachyOS-specific — any Arch-family or recent Mesa-based distro will behave the same. The version of Proton matters more than the distro.

Requirements

There’s no spoof in the world that turns AMD silicon into NVIDIA silicon. What works is a translation layer — and that layer only works because FSR has caught up to rough feature parity with DLSS. DLSS upscaling maps to FSR 3.1 (or FSR 4 on RDNA 4 cards like mine, which is the ML-based version closest in quality to DLSS); DLSS Frame Generation maps to FSR 3 FG; Reflex maps to a dxvk-nvapi Reflex stub — not real Anti-Lag 2, which Pragmata doesn’t integrate. If you tried this on a pre-FSR 3 driver stack, the FG side would have nothing to forward to.

You’ll need four pieces, but only two downloads:

  • REFramework — bypasses Capcom’s RE Engine anti-modding DRM so the other DLLs can inject. Pragmata won’t load any of the rest without this.
  • OptiScaler — sits in front of the game’s upscaler API, swaps inputs and outputs (DLSS asked → FSR delivered), and does the NVIDIA spoof that ungreys the menu items. The OptiScaler 0.9.1 release archive bundles both Nukem’s dlssg_to_fsr3_amd_is_better.dll (the FG translator) and fakenvapi.dll (a Linux/Wine-friendly NVAPI spoof — meaningfully better than dxvk-nvapi alone for AMD) and ships a setup_linux.sh that does the rename for you. So the standalone Nukem download from Nexus #738 is no longer required.
  • dxvk-nvapi — already shipped with Proton. Enabled per-game with PROTON_ENABLE_NVAPI=1. Without it, NVIDIA API calls don’t resolve under Wine. fakenvapi from the OptiScaler bundle layers on top.

Steps

The game folder for the rest of this post:

~/.local/share/Steam/steamapps/common/PRAGMATA
where everything goes

There’s a Nexus mod called DLSS Enabler with 6xMFG for Pragmata (All in one package) that bundles all of the below with a working INI. If you’d rather skip the manual install, drop that archive into the game folder and jump to the launch options. Otherwise, here’s the by-hand path.

1. REFramework

Download the latest Pragmata build from the REFramework nightly releases. Drop dinput8.dll into the game folder.

REF’s overlay defaults to Insert. If your keyboard doesn’t have an Insert key (laptops, 60% boards), pre-create re2_fw_config.txt in the game folder with the menu key remapped — REF reads it on first launch:

MenuKey_V2=35
PRAGMATA/re2_fw_config.txt — REF menu key = End (35 = VK_END)

The value is a Win32 virtual key code in decimal. Some useful ones: 35 = End, 36 = Home, 112 = F1, 113 = F2, 45 = the default Insert.

2. OptiScaler

Extract the OptiScaler 0.9.1 archive into the game folder, then run the bundled installer:

cd <game folder>
bash setup_linux.sh --filename=dxgi.dll --overwrite=y --using_nvidia=n --using_dlss=y
install OptiScaler as dxgi.dll, AMD + DLSS-inputs path

The script renames OptiScaler.dlldxgi.dll and writes a sane default OptiScaler.ini. Force the spoof keys explicitly under [Spoofing]:

[Spoofing]
Dxgi=true
Vulkan=true
StreamlineSpoofing=true
PRAGMATA/OptiScaler.ini — the AMD-specific bits

StreamlineSpoofing=true is the load-bearing one for Pragmata. Streamline is NVIDIA’s plugin loader inside the game, and it’s what gates DLSS/DLSSG behind the GPU check. The other two aren’t enough by themselves on RE Engine titles — the OptiScaler wiki confirms: “SL Spoof already unlocks everything DLSS/DLSSG related.”

If you don’t have an Insert key, also remap OptiScaler’s overlay shortcut under [Menu]:

[Menu]
ShortcutKey=0x24
PRAGMATA/OptiScaler.ini — overlay key = Home (0x24 = VK_HOME)

OptiScaler uses hex virtual key codes (REF uses decimal — yes, that’s annoying). 0x24 = Home, 0x23 = End, 0x70 = F1.

Because the OptiScaler bundle already includes dlssg_to_fsr3_amd_is_better.dll and fakenvapi.dll, there’s no separate “install Nukem” step — extracting the archive put both in place.

3. Steam launch options

Right-click Pragmata in Steam → Properties → Compatibility → force a recent Proton GE (or Proton 10/11 if you prefer Valve’s official). Then under Launch Options:

WINEDLLOVERRIDES="dxgi=n,b" PROTON_ENABLE_NVAPI=1 %command% /WineDetectionEnabled:False
Steam launch options for Pragmata
  • dxgi=n,b — load the native dxgi.dll (OptiScaler) first, fall back to the builtin (DXVK’s). Without this, Wine ignores OptiScaler entirely.
  • PROTON_ENABLE_NVAPI=1 — turns on dxvk-nvapi so NVAPI calls resolve.
  • /WineDetectionEnabled:Falsegame CLI argument, must come after %command%. Pragmata explicitly checks if it’s running under Wine and greys out ray tracing when it sees it; this flag short-circuits that detection. Without it, even AMD cards that fully support DXR through VKD3D-Proton see RT options disabled. (Steam thread)

If you already wrap Steam launches in gamescope-fit.sh from the 4K resolution post, env vars stay in front of the wrapper, the game arg stays after %command%:

WINEDLLOVERRIDES="dxgi=n,b" PROTON_ENABLE_NVAPI=1 ~/Apps/scripts/gamescope-fit.sh -- %command% /WineDetectionEnabled:False
Steam launch options when also using gamescope

Test

Launch the game. Three things to check, in order:

  1. REFramework overlay opens on its configured key (End if you used the remap above). If it doesn’t, REF didn’t load — the game is running stock and nothing else will work.
  2. OptiScaler overlay opens on its configured key (Home with the remap above). If REF opens but OptiScaler doesn’t, the WINEDLLOVERRIDES line isn’t being applied — re-check that dxgi.dll exists in the game folder and that the launch options are saved.
  3. In-game graphics menu: DLSS appears under Upscaling and is selectable, DLSS Frame Generation appears and is selectable, Reflex is selectable. If any of these are still greyed out, StreamlineSpoofing=true is the missing piece.

Then, in the graphics settings:

  • Upscaling → DLSS. OptiScaler intercepts and routes to FSR (toggle backends in its overlay).
  • Frame Generation → on. Goes through Nukem and comes out as FSR3 FG.
  • Reflex → on. dxvk-nvapi handles this with its own latency-reduction implementation; on AMD it’s not the real Reflex but it does cut a frame or two of latency.

Pragmata also natively allows mixing the DLSS upscaler with FSR3 FG in its own settings once spoofing is on. That combo skips Nukem entirely — the game handles its own FG. Worth knowing if FG behaves oddly through Nukem on a particular Proton build and you want a fallback that still gives you frame generation.

Gotchas

  • Pragmata patches break REFramework. Anti-modding DRM gets bumped, REF needs a new build. Expect a day or two of “the game won’t launch” after each game update. Roll back the game version on Steam if you can’t wait.
  • Black screen or instant crash on launch. Drop PROTON_ENABLE_NVAPI=1 first and test. Some combinations of Proton version + dxvk-nvapi + OptiScaler glitch the menu UI. If it works without NVAPI but Frame Generation is missing, switch Proton versions.
  • DLSS option still greyed out. StreamlineSpoofing=true is the one people forget.
  • Ray tracing options greyed out under Proton. Pragmata sniffs for Wine and disables RT when it finds it. Add /WineDetectionEnabled:False to the launch options after %command%. RT GI, RT reflections, and RT shadows then work on AMD; path tracing still crashes via vkd3d-proton.
  • No Insert key on your keyboard. Pre-write the config files as above before first launch — there’s no in-game way to rebind without first opening the menu, which you can’t do without the key. If you’ve already launched and REF created re2_fw_config.txt with the Insert default, edit MenuKey_V2= to a key you have and relaunch.

Conclusion

DLSS on AMD is a translation layer, not a spoof in the literal sense — REFramework injects, OptiScaler intercepts, Nukem (bundled with OptiScaler) translates, fakenvapi + dxvk-nvapi make the NVIDIA API calls resolve. Once the pieces line up, Pragmata’s full upscaling, frame-generation, and ray-tracing menus are available on a Radeon, and the game runs with FG on a 120Hz display the way it was meant to.

I went through every step on my own machine while writing this and the result is what the post promises. The only thing that stays unavailable is path tracing, and that’s two-layered: Capcom won’t let you select it without an NVIDIA card, and even when you patch around the menu lock, vkd3d-proton crashes the game on enable. So path tracing is “no” on Linux today regardless of GPU vendor — but everything else is yes.

References