D3D12_DESCRIPTOR_RANGE_FLAGS Enumeration

Specifies the volatility of both descriptors and the data they reference in a Root Signature 1.1 description, which can enable some driver optimizations.

Syntax

typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
  D3D12_DESCRIPTOR_RANGE_FLAG_NONE,
  D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC,
  D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
} ;

Constants

D3D12_DESCRIPTOR_RANGE_FLAG_NONE Default behavior. Descriptors are static, and default assumptions are made for data (for SRV/CBV: DATA_STATIC_WHILE_SET_AT_EXECUTE, and for UAV: DATA_VOLATILE).
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE If this is the only flag set, then descriptors are volatile and default assumptions are made about data (for SRV/CBV: DATA_STATIC_WHILE_SET_AT_EXECUTE, and for UAV: DATA_VOLATILE).

If this flag is combined with DATA_VOLATILE, then both descriptors and data are volaille, which is equivalent to Root Signature Version 1.0.

If this flag is combined with DATA_STATIC_WHILE_SET_AT_EXECUTE, then descriptors are volatile. This still doesn’t allow them to change during command list execution so it is valid to combine the additional declaration that data is static while set via root descriptor table during execution – the underlying descriptors are effectively static for longer than the data is being promised to be static.

D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE Descriptors are static and the data is volatile.
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE Descriptors are static and data is static while set at execute.
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC Both descriptors and data are static. This maximizes the potential for driver optimization.
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS

Remarks

This enum is used by the D3D12_DESCRIPTOR_RANGE1 structure.

To specify the volatility of just the data referenced by descriptors, refer to D3D12_ROOT_DESCRIPTOR_FLAGS.

Requirements

   
Header d3d12.h

See Also

Core Enumerations

Root Signature Version 1.1