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

# D3D12_DESCRIPTOR_RANGE_FLAGS

> 指定在根签名 1.1 描述中描述符及其引用数据的易变性，从而可启用某些驱动程序优化。

指定在根签名 1.1 描述中描述符及其引用数据的易变性，从而可启用某些驱动程序优化。

## 语法

```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
```

## 常量

| 常量 | 说明 |
| - | - |
| D3D12\_DESCRIPTOR\_RANGE\_FLAG\_NONE | 默认行为。描述符是静态的，并对数据采用默认假设（对于 SRV/CBV：DATA\_STATIC\_WHILE\_SET\_AT\_EXECUTE；对于 UAV：DATA\_VOLATILE）。 |
| D3D12\_DESCRIPTOR\_RANGE\_FLAG\_DESCRIPTORS\_VOLATILE | 如果只设置了此标志，则描述符为易变，并对数据采用默认假设（对于 SRV/CBV：DATA\_STATIC\_WHILE\_SET\_AT\_EXECUTE；对于 UAV：DATA\_VOLATILE）。如果此标志与 DATA\_VOLATILE 组合，则描述符和数据都是易变的，这等同于根签名版本 1.0。如果此标志与 DATA\_STATIC\_WHILE\_SET\_AT\_EXECUTE 组合，则描述符是易变的。这仍然不允许它们在命令列表执行期间发生变化，因此可以有效地组合以下附加声明：数据在执行期间通过根描述符表设置时是静态的——底层描述符实际上比数据被承诺的静态时间更长地保持静态。 |
| 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 | 提供与静态描述符相同的好处（请参阅 **D3D12\_DESCRIPTOR\_RANGE\_FLAG\_NONE**），但作为优化，驱动程序不允许将缓冲区提升为根描述符，因为它们必须保持边界检查，而根描述符没有这些检查。 |

## 注解

此枚举由 [D3D12\_DESCRIPTOR\_RANGE1](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/structs/d3d12_descriptor_range1_public.md) 结构使用。

若要仅指定描述符引用的数据的易变性，请参阅 [D3D12\_ROOT\_DESCRIPTOR\_FLAGS](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/enums/d3d12_root_descriptor_flags_public.md)。

## 要求

**头文件：** d3d12\_xs.h 或 d3d12\_x.h\
**库：** d3d12\_xs.lib 或 d3d12\_x.lib\
**支持的平台**：XBOX Series 主机和 XBOX One 系列

## 另请参阅

[核心枚举](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-enumerations)

[根签名版本 1.1](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/root-signature-version-1-1)


## Related topics

- [D3D12_ROOT_DESCRIPTOR_FLAGS](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/enums/d3d12_root_descriptor_flags_public.md)
- [D3D12_DESCRIPTOR_RANGE1](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/structs/d3d12_descriptor_range1_public.md)
- [GetRootSignatureDescAtVersion](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getrootsignaturedescatversion_public.md)
- [D3D12_DESCRIPTOR_RANGE](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/structs/d3d12_descriptor_range_public.md)
- [D3D12_DESCRIPTOR_RANGE_TYPE](https://docs.xbox.com/zh-CN/reference/graphics/d3d12/enums/d3d12_descriptor_range_type_public.md)
