Variable sized work
- Auto-discovered
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.
Related resources
- 5 ways to draw an outline (Alexander Ameye)
Five Ways to Draw an Outline is Alexander Ameye's 2021 note (alexanderameye.github.io / ameye.dev).
100% match · <blog><applications><article><free><includes><post><programmers><style> - A gentle introduction to shaders (Alan Zucconi)
Alan Zucconi's A gentle introduction to shaders in Unity3D (June 2015) is part one of his Gentle Introduction series on alanzucconi.com, aimed at Unity developers new to GPU programs. It connects vertices, materials, and shaders in Unity's pipeline, covering ShaderLab Properties and SubShader layout, inspector uniforms, Queue tags, ZTest, and the surface-versus-vertex/fragment split for lighting versus effects. Little prior shader knowledge is assumed; fixed-function shaders are skipped as obsolete.
100% match · <blog><about><article><below><free><gpu><programmers><shaders> - A Look at Spyro's Portals - Rendering the Background
Daniel Pokladek's November 2020 post begins a Unity series on Spyro Reignited portal shaders, focusing on the background visible through the opening while later installments cover
100% match · <blog><article><below><fan><free><programmers><shaders><style> - Believable Caustics Reflections (Alan Zucconi)
Believable Caustics Reflections is Alan Zucconi's September 2019 Unity blog post on faking pool-style ripple caustics without ray tracing, sparked by Florian Gelzenleuchter's popular shader GIF. One tileable texture is sampled twice in a Surface shader at different scales and scroll speeds, combined with min(), then tinted onto albedo with slight RGB UV offsets for dispersion. The walkthrough covers _ST tiling, _Time animation, HDR albedo above 1.0, and Post Processing Stack v2 bloom.
100% match · <blog><article><below><free><post><posted><programmers><shaders> - BruteForceGame
Matthieu Houllier's Brute Force studio blog documenting Crumble, a Unity physics platformer released on Steam in late 2020. Devlogs walk through shipped shaders: shell grass ben
100% match · <blog><article><comfort><free><global><includes><setup><shaders> - Creating a Volumetric Ray Marcher
The post builds a march loop along the camera ray inside a mesh volume, sampling tiled 2D slice atlases as pseudo-3D density, accumulating opacity, and clipping to a bounding box while supporting o…
100% match · <blog><advanced><article><large><local><march><post><style> - Custom Post Processing in URP / Unity 2021.3 (Febucci)
Federico Bellucci's May 2022 Febucci article covers custom post-processing in Unity URP on Unity 2021.x (URP 12.1.5), when volume-backed custom effects lacked clear docs.
100% match · <code><blog><article><free><includes><post><programmers><similar> - Drawing Thousands of Meshes with DrawMeshInstanced / Indirect (Toqoz)
Toqoz's November 2019 toqoz.fyi post walks through drawing very large mesh counts in Unity with Graphics.DrawMeshInstanced and Graphics.DrawMeshInstancedIndirect, with C# samples,
100% match · <code><advanced><blog><about><article><far><free><gpu> - A silly diffuse shading model
A silly diffuse shading model is a December 2025 post on the lisyarus graphics blog about a one-liner alternative to classic Lambertian diffuse for tech demos and early…
100% match · <blog><about><article><free><multi><post><programmers><useful> - An Experimental Approach to printf in HLSL
An Experimental Approach to printf in HLSL is a December 2025 technical post by Chris Bieneman describing a holiday prototype for GPU-side printf in HLSL. It covers GPU string…
100% match · <code><advanced><blog><article><free><gpu><packing><post> - SIGGRAPH 2025 Advances in Real-Time Rendering in Games: Fast as Hell: idTech8 Global Illumination
[video] SIGGRAPH 2025 Advances in Real-Time Rendering in Games: Fast as Hell: idTech8 Global Illumination is a YouTube recording of Tiago Sousa's Advances talk on idTech8 global…
100% match · <code><optimization><advanced><contrasts><free><global><keeping><multi> - No Graphics API
No Graphics API is a December 2025 long-form essay by Sebastian Aaltonen arguing that modern bindless GPUs no longer need the retained-mode complexity of DirectX 12, Vulkan, and…
100% match · <code><optimization><advanced><blog><free><gpu><memory><post> - Secrets of Direct3D 12: The Behavior of ClearUnorderedAccessViewUint/Float
Secrets of Direct3D 12: The Behavior of ClearUnorderedAccessViewUint/Float is a December 2025 deep dive by Adam Sawicki on how ID3D12GraphicsCommandList clear-UAV helpers fill…
100% match · <code><advanced><blog><article><contrasts><free><gpu><post> - Around The World, Part 28: Scaling up
This is part 28 of Thomas ten Cate's Around The World development blog about an early-stage sea exploration game in Godot.
100% match · <code><optimization><blog><about><article><comfort><free><large> - MeshSplatting: Differentiable Rendering with Opaque Meshes
MeshSplatting: Differentiable Rendering with Opaque Meshes presents a mesh-based novel view synthesis method by Jan Held and collaborators that jointly optimizes geometry and…
100% match · <code><advanced><free><memory><optimizing><presents><programmers><triangle> - Focus on Your Algorithm—NVIDIA CUDA Tile Handles the Hardware
This is an NVIDIA developer blog by Jonathan Bentz and Tony Scudiero introducing CUDA Tile in CUDA 13.1 as a virtual instruction set for tile-based GPU programming that abstracts…
100% match · <code><blog><advanced><every><free><gpu><includes><post> - Better sRGB to greyscale conversion
Better sRGB to greyscale conversion is an October 2025 technical blog post on 30fps.net about converting gamma-encoded sRGB to greyscale without misusing Rec.
100% match · <blog><about><article><free><post><programmers><technical><useful> - WebGPU and the price of compiling WGSL
WebGPU and the price of compiling WGSL is a blog post by Hugo Daniel introducing a WebGPU diagnostics and compilation-benchmark tool after earlier posts on WGSL limits. It…
100% match · <code><blog><about><far><free><gpu><local><multi> - A case for learning GPU programming with a compute-first mindset
A case for learning GPU programming with a compute-first mindset is a 2025 blog essay on Maister Graphics Adventures arguing that new GPU programmers should learn compute,…
100% match · <code><optimization><blog><article><free><gpu><multi><post> - Ocean Rendering, Part 1 - Simulation
Ocean Rendering, Part 1 - Simulation is an October 2025 technical blog post by Robert Ryan on the theory and mathematics of real-time FFT ocean surface simulation using…
100% match · <code><advanced><blog><article><free><packing><post><programmers>