Lighting: skip the split shadow pass when nothing casts #823

Open
opened 2026-10-17 18:10:02 +00:00 by sky_line · 0 comments
Owner

With sun shadows off and no shadowed projectors the split lighting's shadow pass still decodes the G-buffer and writes a constant 1.0 visibility that the combine reads back (~0.8 ms at 4K on a GTX 1080). Skip it under that specialisation key and make the combine's sun visibility a constant.

Context: measured on a GTX 1080 (Pascal) at 4K with the test-control channel and the shader clock (RenderVKShaderClockLighting) / pipeline stats (RenderVKPipelineStats). The frame is GPU-bound but not bandwidth-bound (memory controller ~36% busy on the 1080, ~14% on a 5090): it is latency / occupancy bound, so trading a little memory traffic for fewer registers and fewer dependent loads should help every GPU generation.

With sun shadows off and no shadowed projectors the split lighting's shadow pass still decodes the G-buffer and writes a constant 1.0 visibility that the combine reads back (~0.8 ms at 4K on a GTX 1080). Skip it under that specialisation key and make the combine's sun visibility a constant. Context: measured on a GTX 1080 (Pascal) at 4K with the test-control channel and the shader clock (RenderVKShaderClockLighting) / pipeline stats (RenderVKPipelineStats). The frame is GPU-bound but not bandwidth-bound (memory controller ~36% busy on the 1080, ~14% on a 5090): it is latency / occupancy bound, so trading a little memory traffic for fewer registers and fewer dependent loads should help every GPU generation.
sky_line added this to the Slipstream project 2026-10-17 18:10:02 +00:00
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#823
No description provided.