Later: investigate integrating AMD FSR 3.1 upscaler as an alternative to our TAA upscaler #191

Closed
opened 2026-09-29 23:32:09 +00:00 by sky_line · 1 comment
Owner

Later / optional. Our own FSR-2-class upscaler (TAA resolve, #181-#184) is the path for now; this ticket is to revisit pulling in AMD's upscaler if we still want it.

Why consider it

  • FSR 2/3.1 is mature and tuned across thousands of titles; most of what we fixed in #182 (edge disocclusion, jitter-dependent rejection, locks, kernel width) is solved there, and it has more (luma-instability detection, lock lifetimes, Lanczos reconstruction, transparency & composition masks).
  • MIT licence. FSR 3.1 decouples the upscaler from frame generation -> a later path to frame gen.
  • Our inputs already match what it needs: render/display split (#181), jitter, motion vectors (incl. rigged), depth, reactive mask, exposure.

What to check

  1. Does the FidelityFX SDK FSR 3.1 Vulkan backend build and run on Linux with our toolchain (and Windows cross build)? As a 3p autobuild package on applejack CI.
  2. Input adaptation: motion vector scale/sign, depth convention (+ reversed-Z if #188 lands), jitter sign, reactive / transparency masks, exposure texture, HDR vs LDR input, where in the post chain it runs.
  3. Integrate behind the same interface as an Upscaler choice ("Slipstream" vs "AMD FSR 3.1"), A/B in-world, keep ours as fallback.
  4. Cost (GPU ms, VRAM) vs ours.

Related: #181, #182, #183, #184, #6.

Later / optional. Our own FSR-2-class upscaler (TAA resolve, #181-#184) is the path for now; this ticket is to revisit pulling in AMD's upscaler if we still want it. ### Why consider it - FSR 2/3.1 is mature and tuned across thousands of titles; most of what we fixed in #182 (edge disocclusion, jitter-dependent rejection, locks, kernel width) is solved there, and it has more (luma-instability detection, lock lifetimes, Lanczos reconstruction, transparency & composition masks). - MIT licence. FSR 3.1 decouples the upscaler from frame generation -> a later path to frame gen. - Our inputs already match what it needs: render/display split (#181), jitter, motion vectors (incl. rigged), depth, reactive mask, exposure. ### What to check 1. Does the FidelityFX SDK FSR 3.1 **Vulkan backend build and run on Linux** with our toolchain (and Windows cross build)? As a 3p autobuild package on applejack CI. 2. Input adaptation: motion vector scale/sign, depth convention (+ reversed-Z if #188 lands), jitter sign, reactive / transparency masks, exposure texture, HDR vs LDR input, where in the post chain it runs. 3. Integrate behind the same interface as an Upscaler choice ("Slipstream" vs "AMD FSR 3.1"), A/B in-world, keep ours as fallback. 4. Cost (GPU ms, VRAM) vs ours. Related: #181, #182, #183, #184, #6.
Author
Owner

Verified done: AMD FSR 3.1 is integrated as an alternative to our TAA upscaler (RenderVKUpscaleMode 6-11, Native AA + quality presets). Commits: f94bd4c861 (vendored FidelityFX FSR 3.1.4), 6eb3687bf9 (FSR 3.1 upscaler). Shipped in v1.0.0-beta.1. Follow-ups tracked in #246 (FSR-only AA) and #261.

Verified done: AMD FSR 3.1 is integrated as an alternative to our TAA upscaler (RenderVKUpscaleMode 6-11, Native AA + quality presets). Commits: f94bd4c861 (vendored FidelityFX FSR 3.1.4), 6eb3687bf9 (FSR 3.1 upscaler). Shipped in v1.0.0-beta.1. Follow-ups tracked in #246 (FSR-only AA) and #261.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#191
No description provided.