GI re-shade: add a significance test and find why ~25 lights count as changed every frame #980

Closed
opened 2026-10-23 18:07:41 +00:00 by sky_line · 1 comment
Owner

From the 2026-10-23 GI performance pass. Baseline: RTX 5090, 4K, DLSS Ultra Performance (1280x720 render), GI at full render resolution, GI 3 + cache, ReSTIR DI 3, emissive on: GPU 30.9 ms/frame (GPU-bound), async deferred lighting 20.1 ms, c_gi_trace 12.7 ms (883k rays/frame).

0.235 re-shades per GI ray (about 1-2 ms). Each re-shade is a full closest-hit ray plus hit shading. giChangedReaches has no significance test: any changed light in range with attenuation above 0 triggers it, and about 25 of 256 lights count as changed every frame at steady state.

Plan

  1. Log which lights are flagged changed every frame (moving vs radiance-changed; RenderVKReSTIRFlickerEps too tight? lights on avatars?).
  2. Add a contribution threshold: re-shade only when the changed light's unshadowed contribution at the stored point is a meaningful share of the stored radiance.

Estimate

1-2 ms, small effort, risk: a slightly stale tint in rare cases.

From the 2026-10-23 GI performance pass. Baseline: RTX 5090, 4K, DLSS Ultra Performance (1280x720 render), GI at full render resolution, GI 3 + cache, ReSTIR DI 3, emissive on: GPU 30.9 ms/frame (GPU-bound), async deferred lighting 20.1 ms, `c_gi_trace` 12.7 ms (883k rays/frame). 0.235 re-shades per GI ray (about 1-2 ms). Each re-shade is a full closest-hit ray plus hit shading. `giChangedReaches` has no significance test: any changed light in range with attenuation above 0 triggers it, and about 25 of 256 lights count as changed every frame at steady state. ## Plan 1. Log which lights are flagged changed every frame (moving vs radiance-changed; `RenderVKReSTIRFlickerEps` too tight? lights on avatars?). 2. Add a contribution threshold: re-shade only when the changed light's unshadowed contribution at the stored point is a meaningful share of the stored radiance. ## Estimate 1-2 ms, small effort, risk: a slightly stale tint in rare cases.
sky_line added this to the Slipstream project 2026-10-23 18:07:41 +00:00
Author
Owner

Fixed in 1.5.0 Beta 1 (80b05090e5). Reopen if you still see it.

Fixed in 1.5.0 Beta 1 (80b05090e5). Reopen if you still see it.
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#980
No description provided.