Frame pacing: far shadow cascades re-render together on registration events (+3.7 ms bursts) #825
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#825
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?
On a GTX 1080 at 4K, high settings, there are no hitches. But GPU time swings from frame to frame (mean 42.6 ms, p50 41.9, p95 45.9, max 48.5, std dev 1.8; frame-to-frame jitter p99 ~8-14 ms in the PACING lines). Pacing is the priority, so the uneven frames have to go.
Measured with
RenderVKFrameJobLog(per-frame GPU time and the staggered jobs that frame carried; 1,051 frames):RenderVKShadowFarCascadeInterval2, alternating)Autocorrelation: −0.33 at lag 1 (the overlay alternation), +0.22 at lag 4 (the cascade bursts).
Root of the bursts: the event-driven cascade cache (
RenderVKShadowEventCache). In steady state 0.48 cascades re-render per frame, and every one isshadowEvChgRegister: instance-store registration change events (new / released / re-shaped rows). Cascades 2 and 3 cover the whole surrounding area, so any such event hits both on the same frame. The scene isn't actually changing at that rate.To do
selfRegisterSweep/forceReingestObject). LOD switches and attachment re-registration are also possible. Then stop registrations that change no geometry, transform or material from emitting shadow-cache change spheres.RenderVKFrameJobLogand the PACING lines (p95, p99, jitter p99). Target: the p95-to-median gap under ~1 ms with no change in average.Merged (7b0b79583b..e901887cac). GTX 1080, 4K, high settings: GPU mean 42.6 -> 37.4 ms, std dev 1.8 -> 0.61 ms, p95 45.9 -> 38.3 ms; far cascade re-renders 0.48 -> 0.045 per frame. Producer: fullbright/unlit flag toggles (b4/b12) and LOD bounding-box swaps emitting registration spheres. Remaining before close: correctness checks (move/edit near and far objects, glow/fullbright toggles must not re-render, projector tiles), then ship.
Fixed in Slipstream 1.3.0 (stable): https://git.slipstreamviewer.org/sky_line/Slipstream/releases/tag/v1.3.0
If you still see this on 1.3.0, reply here and we'll reopen it.