Split the GI trace and RT shadow core kernels into trace and shade passes #1031
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#1031
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?
Profiled with Nsight Graphics GPU Trace + shader profiler on an RTX 5090 (full GI scene, ~61 FPS, GPU ~16.3 ms/frame). DeferGiTrace (19% of GPU shader samples) and DeferShadowMergeCore / DeferProjStochCore (15%) run at the 255-register cap: 8 warps per SM out of 48, and together cover ~4.5 ms of the frame at 10-15% occupancy. Their machine code is ~0.3-0.9 MB, and the profiler shows instruction-cache stalls (NOINST 53%) inside the deferred kernel, plus a long tail at the end of the GI dispatch.
Split each into a trace pass that writes compact hit records and separate shading pass(es).
Done when: each pass is under 128 registers with no local-memory spill (VKPipeStats), the image matches, and GPU timers at the same scene show a net gain.