RT sun shadows: cache static shadow results, re-trace only where something changed #771
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#771
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
RT sun/moon shadows (
RenderVKSunShadows2) trace every mask pixel every frame (rtMaskStage: tracec_rtmask+ temporal + spatial denoise, full-screen dispatch). The denoiser history is accumulation (1 spp + temporal), not caching: nothing is skipped when receivers, casters and the sun are unchanged. RT shadows measured ~2.7 ms of frame time at a busy spot (4K, RTX 5090).Today the only ray-saving option is
RenderVKRTShadowHint(default off): it stops early where history is uniformly lit/blocked, but locks stale values at moving penumbra edges and biases the denoiser clamp.Goal: only re-trace where something changed
clean_rt_moving_caster.glsl,rt_block_dyn) could shadow them, where the instance store reports static changes (gVKChangedSpheres/ overflow), and on disocclusion / reprojection failure.rtMaskPushFillsun_move bits) and a texel/angle threshold.