Descriptor Heaps

A descriptor heap is a collection of contiguous allocations of descriptors, one allocation for every descriptor.

In this section

TopicDescription

Descriptor Heaps Overview

Descriptor heaps contain many object types that are not part of a Pipeline State Object (PSO), such as Shader Resource Views (SRVs), Unordered Access Views (UAVs), Constant Buffer Views (CBVs), and Samplers.

Hardware Tiers

The levels of hardware from Tier 1 to Tier 3 have increasing resources available to the pipeline.

Shader Visible Descriptor Heaps

Shader visible descriptor heaps, are descriptor heaps that can be referenced by shaders through descriptor tables.

Non Shader Visible Descriptor Heaps

Some descriptor heaps cannot be referenced by shaders through descriptor tables, but exist either to assist the app in staging the descriptors prior to recording a command list or because no shader-visible heap is required.

Creating Descriptor Heaps

To create and configure a descriptor heap, you must select a descriptor heap type, determine how many descriptors it contains, and set flags that indicate whether it is CPU visible and/or shader visible.

Setting and Populating Descriptor Heaps

The descriptor heap types that can be set on a command list are those that contain descriptors for which descriptor tables can be used (at most one of each at a time).

Descriptor Heap Configurability Summary

The following table summarizes information about Shader and non-Shader visible heap support.

 

Related topics

Descriptors
Descriptor Tables
ID3D12DescriptorHeap
Resource Binding
Root Signatures

 

 

Show: