Skip to content

TAA: unjitter the current-frame taps (sparkle slice 2, −22% static flicker)#114

Merged
proggeramlug merged 1 commit into
mainfrom
fix/taa-unjitter
Jul 16, 2026
Merged

TAA: unjitter the current-frame taps (sparkle slice 2, −22% static flicker)#114
proggeramlug merged 1 commit into
mainfrom
fix/taa-unjitter

Conversation

@proggeramlug

Copy link
Copy Markdown
Contributor

The resolve sampled the current frame at its jittered position — α × jitter-phase-difference shimmered into every output frame by construction. Current tap + clamp neighborhood now resample at the true position (TaaParams.yz; sign arbitrated empirically by the variance rig). History reprojection deliberately stays in jittered space (EN-022 velocity-ref bakes the jitter).

Measured: bank 3.99→3.11, grass 3.46→2.70 (with slice 1: −22% static flicker). Gates: sharpness A/B clean at rs 1.0; rs 0.75 title sharp, no ghosting — the jitter's sub-pixel information now enters via Catmull-Rom reconstruction instead of leaking out as noise.

Also: an in-run indoor capture caught the user's actual report — white GI-probe-texel-shaped speckles blanketing interiors (archived tools/.testout/indoor-blizzard.png). That's a separate SSGI-suspect hunt, now the top open item.

The resolve sampled the current frame at its JITTERED position
(sample_catmull_rom(in.uv), no offset), so alpha x jitter-phase
difference shimmered into every output frame by construction. The
current tap and its 3x3 clamp neighborhood now resample at the true
position via TaaParams.yz (= -0.5*jitter_ndc.x, +0.5*jitter_ndc.y in
composed UV - the GL-convention divide flips the sign, and the
variance rig arbitrated it empirically). History reprojection stays in
jittered space on purpose: EN-022's velocity-ref VP already bakes the
current jitter.

Measured (f12-live rig, 5 live captures, high-pass temporal stddev):
  bank  3.99 -> 3.11    grass 3.46 -> 2.70   (taa-off floor 1.94/1.03)
Combined with slice 1 (motion-aware disocclusion edge): -22% static
flicker. Gates: sharpness A/B clean at rs 1.0; rs 0.75 title capture
sharp, no ghosting (TSR super-resolution intact - the sub-pixel
information now enters through the Catmull-Rom reconstruction instead
of leaking out as output noise).

Remaining gap to the floor is NOT TAA: an in-run indoor capture caught
the artifact the user actually reported - white render-pixel-scale
square speckles blanketing interior surfaces (GI-probe-texel shaped,
SSGI prime suspect). Archived in the shooter as
tools/.testout/indoor-blizzard.png; separate hunt.
@proggeramlug
proggeramlug merged commit 9998b33 into main Jul 16, 2026
@proggeramlug
proggeramlug deleted the fix/taa-unjitter branch July 16, 2026 16:46
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@proggeramlug, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 9 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 7dab18d3-8ec0-4db7-9f3c-d59ba0ce909d

📥 Commits

Reviewing files that changed from the base of the PR and between 48c9fb4 and bcb45f7.

📒 Files selected for processing (2)
  • native/shared/src/renderer/postfx_chain.rs
  • native/shared/src/renderer/shaders/post.rs
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/taa-unjitter

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant