You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parent: #126
Includes engine ticket EN-061 from docs/tickets.md
Related: #56
Problem
Temporal effects multiply both quality and failure modes. Bloom uses temporal reconstruction/history in TAA/TSR, SSR, screen-probe GI, denoising, exposure, and realtime path tracing, but these systems do not yet share one authoritative motion/history contract. Observed symptoms include SSR fireflies in dark interiors, specular trails, disocclusion smearing, widened block artifacts after upscale, and soft defaults.
Outcome
A common temporal contract plus a qualification/fix pass that makes still and moving output stable across camera motion, object motion, disocclusion, lighting changes, resolution changes, and feature toggles.
Common temporal contract
Define and document once:
motion-vector convention (current-to-previous or previous-to-current), units, jitter inclusion, clip/NDC Y convention, and validity;
current/previous transforms for static, rigid, skinned, particle, and procedural content;
camera-cut/teleport detection and explicit reset API;
history allocation, resize/render-scale change, exposure domain, and reset rules;
Share motion/disocclusion rules where representations match.
Bound radiance outliers before they poison temporal/spatial history.
Preserve fast lighting changes without persistent lag.
Reset/reseed correctly on mode toggles and camera cuts.
Motion corpus
Automate at least:
slow pan, subpixel crawl, fast rotation, camera cut, and FOV change;
translating/rotating rigid object;
skinned animation;
alpha-tested foliage/card motion;
emissive light turning on/off;
dark interior looking at bright exterior;
transparent/refractive object motion;
dynamic-resolution step and window resize.
Compare sequences, not only final frames. Report temporal SSIM/FLIP, flicker/variance, ghost trail duration, rejection ratio, and stable-frame convergence.
Acceptance criteria
The shared convention is documented and unit-tested with known matrices/points, including jitter and Y orientation.
All motion-producing paths either write valid motion/reactive data or explicitly opt out with correct history rejection.
EN-061 interior SSR case contains no isolated high-luminance fireflies above an approved local threshold and retains valid smooth-metal reflections.
Camera cuts, mode toggles, resize, and render-scale changes leave no prior-frame image after the documented reset window.
Moving geometry has no persistent (> approved frame count) ghost trail in the corpus.
Quality presets define render scale, temporal mode, sharpening, and per-effect history behavior together; default output is not unintentionally soft.
PT motion goldens and full quality corpus pass on supported backends.
Before/after pass timings and memory for every added history/mask are reported.
Parent: #126
Includes engine ticket EN-061 from
docs/tickets.mdRelated: #56
Problem
Temporal effects multiply both quality and failure modes. Bloom uses temporal reconstruction/history in TAA/TSR, SSR, screen-probe GI, denoising, exposure, and realtime path tracing, but these systems do not yet share one authoritative motion/history contract. Observed symptoms include SSR fireflies in dark interiors, specular trails, disocclusion smearing, widened block artifacts after upscale, and soft defaults.
Outcome
A common temporal contract plus a qualification/fix pass that makes still and moving output stable across camera motion, object motion, disocclusion, lighting changes, resolution changes, and feature toggles.
Common temporal contract
Define and document once:
Create debug views for motion, reprojected UV, rejection reason, history length, reactive mask, variance, and clamped history.
Required work
TSR/TAA
Ultrais not silently half-resolution/soft; coordinate with Defaultrender_scale=0.5+ TAA + no sharpening makes output blurry #56.SSR
GI and PT denoisers
Motion corpus
Automate at least:
Compare sequences, not only final frames. Report temporal SSIM/FLIP, flicker/variance, ghost trail duration, rejection ratio, and stable-frame convergence.
Acceptance criteria
Likely files
native/shared/src/renderer/postfx_chain.rs,ssr_pass.rs,ssgi_pass.rs,pt_pass.rs,hiz.rs,drs.rsnative/shared/src/renderer/shaders/src/core/native/shared/tests/golden_render.rsNon-goals
Dependencies