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

> 指定在根签名 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](/reference/graphics/d3d12/structs/d3d12_descriptor_range1_public) 结构使用。

若要仅指定描述符引用的数据的易变性，请参阅 [D3D12\_ROOT\_DESCRIPTOR\_FLAGS](/reference/graphics/d3d12/enums/d3d12_root_descriptor_flags_public)。

## 要求

**头文件：** 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](/zh-CN/reference/graphics/d3d12/enums/d3d12_root_descriptor_flags_public.md)
- [D3D12_DESCRIPTOR_RANGE1](/zh-CN/reference/graphics/d3d12/structs/d3d12_descriptor_range1_public.md)
- [GetRootSignatureDescAtVersion](/zh-CN/reference/graphics/d3d12/interfaces/id3d12versionedrootsignaturedeserializer/methods/id3d12versionedrootsignaturedeserializer_getrootsignaturedescatversion_public.md)
- [D3D12_DESCRIPTOR_RANGE](/zh-CN/reference/graphics/d3d12/structs/d3d12_descriptor_range_public.md)
- [D3D12_DESCRIPTOR_RANGE_TYPE](/zh-CN/reference/graphics/d3d12/enums/d3d12_descriptor_range_type_public.md)
