> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# D3D12_DESCRIPTOR_RANGE_FLAGS

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

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

```cpp theme={null}
typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS
{
    D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
    D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 1,
    D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 2,
    D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 4,
    D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 8,
    D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 65536
} D3D12_DESCRIPTOR_RANGE_FLAGS
```

## Constants

| Constant                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 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 volatile, 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 | Provides the same benefits as static descriptors (see **D3D12\_DESCRIPTOR\_RANGE\_FLAG\_NONE**), except that the driver is not allowed to promote buffers to root descriptors as an optimization, because they must maintain bounds checks and root descriptors do not have those.                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |

## Remarks

This enum is used by the [D3D12\_DESCRIPTOR\_RANGE1](/reference/graphics/d3d12/structs/d3d12_descriptor_range1_public) structure.

To specify the volatility of just the data referenced by descriptors, refer to [D3D12\_ROOT\_DESCRIPTOR\_FLAGS](/reference/graphics/d3d12/enums/d3d12_root_descriptor_flags_public).

## Requirements

**Header:** d3d12\_xs.h or d3d12\_x.h\
**Library:** d3d12\_xs.lib or d3d12\_x.lib\
**Supported Platforms**: XBOX Series consoles and XBOX One family

## See Also

[Core Enumerations](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-enumerations)

[Root Signature Version 1.1](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/root-signature-version-1-1)


## Related topics

- [D3D12_ROOT_DESCRIPTOR_FLAGS](/reference/graphics/d3d12/enums/d3d12_root_descriptor_flags_public.md)
- [D3D12_DESCRIPTOR_RANGE1](/reference/graphics/d3d12/structs/d3d12_descriptor_range1_public.md)
- [GetRootSignatureDescAtVersion](/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getrootsignaturedescatversion_public.md)
- [D3D12_DESCRIPTOR_RANGE](/reference/graphics/d3d12/structs/d3d12_descriptor_range_public.md)
- [D3D12_DESCRIPTOR_RANGE_TYPE](/reference/graphics/d3d12/enums/d3d12_descriptor_range_type_public.md)
