← All resources

Variable sized work

Auto-discovered

Blog Advanced

Brian Karis

Visit resource ↗

Description

Technical blog post by Brian Karis on Graphic Rants about distributing variable-sized GPU work from Nanite tessellation when TessFactors or SplitFactors are far below their maxima. Posted March 15, 2026.

It contrasts idle threads from static assignment and multi-queue waste, argues software rasterization wins by keeping triangle setup in registers, then presents wave-local distribution with WavePrefixSum, groupshared marking, and WaveReadLaneAt. Includes DistributeWork-style pseudocode and a lane-state walkthrough.

For advanced GPU programmers optimizing Nanite tessellation or similar producer-consumer shaders. Expects comfort with wave intrinsics and groupshared memory.

Free Blogspot article showing applications in ClusterRasterize dicing, split enqueue, and PatchSplit child writes.

Useful as a parallel pattern for packing variable GPU fan-out without shipping large work items through global queues on every expansion.