Shaders are GPU programs that process visual data—such as rays, pixels, geometry, and textures—to produce specific rendering effects. Shaders find necessary data through a process called resource binding . CPU code orchestrates the creation of GPU resources such as textures and memory buffers and then carefully arranges for shader code to access them through a binding protocol.
The new descriptor heap feature in Vulkan refactors this process from the ground up, addressing long-standing user feedback to streamline resource binding and bring greater parity to how it works in Direct3D 12 (D3D12). Descriptor heaps give direct control over descriptor memory management, are a better match for modern hardware, and simplify performance optimization of resource management. They’re especially useful for renderers using dynamic texture indexing, for complex ray tracing shaders, or when there is a shared backend supporting D3D12.…