FSR 2/4: temporal upscaling in the TAA resolve (clean_taa.comp) #182

Closed
opened 2026-09-29 21:31:11 +00:00 by sky_line · 3 comments
Owner

Part of #6. Depends on the render/display split.

Turn the TAA resolve into a temporal upscaler (TAAU / FSR-2-style reconstruction): accumulate jittered render-size samples into a display-size history.

  • Per-output-pixel reconstruction from the nearest render samples with jitter-aware Lanczos/Gaussian weights; sample weight feeds a per-pixel accumulation count (more jitter phases at lower scale: Halton length scales with scale^-2).
  • Motion vectors / depth / reactive mask read at render size, dilated.
  • History clip box built from render-size neighbourhood.
  • Disocclusion / reset handling as today.

Keeps us dependency-free on Linux and Windows. AMD's FSR 3.1 (Vulkan backend) can sit behind the same interface later if quality needs it.

Part of #6. Depends on the render/display split. Turn the TAA resolve into a temporal upscaler (TAAU / FSR-2-style reconstruction): accumulate jittered render-size samples into a display-size history. - Per-output-pixel reconstruction from the nearest render samples with jitter-aware Lanczos/Gaussian weights; sample weight feeds a per-pixel accumulation count (more jitter phases at lower scale: Halton length scales with scale^-2). - Motion vectors / depth / reactive mask read at render size, dilated. - History clip box built from render-size neighbourhood. - Disocclusion / reset handling as today. Keeps us dependency-free on Linux and Windows. AMD's FSR 3.1 (Vulkan backend) can sit behind the same interface later if quality needs it.
Author
Owner

Status after the #181/#182 test rounds (pushed up to bd48eea58c): edge flicker, false disocclusion bands and overlay jitter are fixed; locks keep sub-render-pixel detail stable. Known leftover: speckled history rejection on very distant thin geometry at render scale 0.5 (RenderVKTAADebug 1), minor visually. Window-sill flicker turned out to be z-fighting (present at native): #188.

Status after the #181/#182 test rounds (pushed up to bd48eea58c): edge flicker, false disocclusion bands and overlay jitter are fixed; locks keep sub-render-pixel detail stable. **Known leftover:** speckled history rejection on very distant thin geometry at render scale 0.5 (RenderVKTAADebug 1), minor visually. Window-sill flicker turned out to be z-fighting (present at native): #188.
Author
Owner

Pushed up to 33a645cd0d: coverage-weighted accumulation (R32F weight, cap scaled by (display/render)^2), display-space reconstruction kernel, own-depth disocclusion test + 3x3 previous-depth search, scale-aware depth tolerance, locks, unjittered display depth, debug views 1-5 fixed.

Open (iterate later):

  • Fine texture detail (brick mortar) still slightly softer than native at Performance.
  • Speckled history rejection on very distant thin geometry.
  • Watch for ghosting reports on static surfaces with changing lighting (longer accumulation + locks).
  • FSR 2 features not yet ported: luma-instability detection, lock lifetimes, Lanczos kernel, transparency/composition masks. AMD FSR 3.1 as an alternative: #191.
Pushed up to 33a645cd0d: coverage-weighted accumulation (R32F weight, cap scaled by (display/render)^2), display-space reconstruction kernel, own-depth disocclusion test + 3x3 previous-depth search, scale-aware depth tolerance, locks, unjittered display depth, debug views 1-5 fixed. **Open (iterate later):** - Fine texture detail (brick mortar) still slightly softer than native at Performance. - Speckled history rejection on very distant thin geometry. - Watch for ghosting reports on static surfaces with changing lighting (longer accumulation + locks). - FSR 2 features not yet ported: luma-instability detection, lock lifetimes, Lanczos kernel, transparency/composition masks. AMD FSR 3.1 as an alternative: #191.
Author
Owner

Superseded: the in-house TAA-U temporal upscaler was replaced by AMD FSR 3 (the custom upscaler's settings were removed and mapped onto FSR). Remaining FSR-only AA work is #246.

Superseded: the in-house TAA-U temporal upscaler was replaced by AMD FSR 3 (the custom upscaler's settings were removed and mapped onto FSR). Remaining FSR-only AA work is #246.
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#182
No description provided.