D3D12_DESCRIPTOR_RANGE_FLAGS枚举 (d3d12.h)

指定描述符及其在根签名 1.1 说明中引用的数据的波动性,这可以启用某些驱动程序优化。

语法

typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
  D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
  D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
  D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
} ;

常量

 
D3D12_DESCRIPTOR_RANGE_FLAG_NONE
值: 0
默认行为。 描述符是静态的,对于 SRV/CBV:DATA_STATIC_WHILE_SET_AT_EXECUTE和 UAV:DATA_VOLATILE) 的数据 (进行了默认假设。
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE
值: 0x1
如果这是唯一的标志集,则描述符是可变的,并且针对 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
值: 0x2
描述符是静态的,数据是易失性的。
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE
值: 0x4
描述符是静态的,数据在执行期间设置时是静态的。
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC
值: 0x8
描述符和数据都是静态的。 这可以最大化驱动程序优化的潜力。
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
值: 0x10000
提供与静态描述符相同的优势, (看到 D3D12_DESCRIPTOR_RANGE_FLAG_NONE) ,但驱动程序不允许将缓冲区提升为根描述符作为优化,因为它们必须维护边界检查,根描述符没有这些描述符。

注解

此枚举由 D3D12_DESCRIPTOR_RANGE1 结构使用。

若要指定描述符引用的数据的波动性,请参阅 D3D12_ROOT_DESCRIPTOR_FLAGS

要求

   
标头 d3d12.h

请参阅

核心枚举

根签名版本 1.1