Slim per-instance record for the world vertex shaders #1033
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#1033
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). Vertex shading is ~21% of GPU shader samples. The hottest vertex lines (clean_draw.vert, first use of
inst/pinst) stall 97-99% on memory: every vertex loads the full 224-byte Instance record, and the motion prepass also loads the previous frame's record.Have the cull pass write a compact vertex-shader instance stream (3x4 model matrix plus the ids and flags the VS actually reads, ~64 bytes) and read that in clean_draw.vert / clean_draw_rigged.vert instead.
Done when: identical image (including motion vectors, attachments and spin), with lower G-buffer / prepass timers.
Fixed in 1.5.0 Beta 1 (
1997a3d2fd). Reopen if you still see it.