Pre-skin: stage the skin palette in shared memory #822

Closed
opened 2026-10-17 18:10:02 +00:00 by sky_line · 1 comment
Owner

c_preskin (~1.1 ms) makes four palette loads per vertex that depend on its weight load. Copying an item's palette (110 x 48 B) into shared memory removes that dependent chain; only pays for items with many vertices. Needs measurement: preskin time split by item size.

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.

c_preskin (~1.1 ms) makes four palette loads per vertex that depend on its weight load. Copying an item's palette (110 x 48 B) into shared memory removes that dependent chain; only pays for items with many vertices. Needs measurement: preskin time split by item size. 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
Author
Owner

Fixed in 1.5.0 Beta 1 (d1c46c43b5). Reopen if you still see it.

Fixed in 1.5.0 Beta 1 (d1c46c43b5). Reopen if you still see it.
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#822
No description provided.