Bindless rendering: Setup
Evolve Blog has started a three-part series on building a modern bindless rendering pipeline, beginning with the setup work needed in D3D12 and Vulkan. The first installment lays out the core pieces: a bindless descriptor heap, root signatures or pipeline layouts, descriptor management, and a way to pass descriptor indices to the GPU. Rust is used for the examples, which makes the implementation angle especially practical for teams building engine code in that ecosystem.
The main pitch is familiar to anyone who has wrestled with bindful resource binding: fewer pipeline-specific assumptions, less descriptor staging, and a simpler mental model for resource access. Instead of juggling separate CPU and GPU heaps and binding more state per draw, bindless lets pipelines share a common layout and index directly into resource memory. That can reduce CPU-side overhead and make renderer architecture easier to reason about, especially in content-heavy projects.
The post also introduces an API-agnostic RenderResourceHandle that maps to a descriptor heap index plus validation data. On the D3D12 side, it focuses on the CBV_SRV_UAV heap as the shader-visible bindless path, while noting that static samplers are used to avoid extra sampler bindless complexity. It also calls out SM 6.6’s ResourceDescriptorHeap support and the practical constraint that some older or niche calls still need non-shader-visible handles.
The series is clearly heading toward the harder parts next: template-based GPU access in part 2, then validation in part 3, including resource versioning, tagging, and...
“all pipelines share the same descriptor heap, and pipeline resource layout”
- what
- A three-part series begins on setting up a modern bindless rendering pipeline
- who
- Evolve Blog
- when
- Part 1 is out now; part 2 will cover templates and part 3 validation
- impact
- Helps engine developers simplify resource binding and reduce per-draw overhead
Promising renderer simplification and performance gains
Follow Vulkan updates
See relevant stories in your personalized news feed.
Discussion