D3D12_ROOT_SIGNATURE_FLAGS 枚举 (d3d12.h)

指定根签名布局的选项。

语法

typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
  D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
  D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
  D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
  D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
} ;

常量

 
D3D12_ROOT_SIGNATURE_FLAG_NONE
值: 0
指示默认行为。
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT
值: 0x1
应用选择使用输入汇编程序 (要求输入布局定义一组顶点缓冲区绑定) 。 省略此标志可能会导致某些硬件上保存一个根参数空间。 如果不需要输入汇编程序,则省略此标志,尽管优化是次要的。
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS
值: 0x2
拒绝顶点着色器访问根签名。
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS
值: 0x4
拒绝外壳着色器访问根签名。
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS
值: 0x8
拒绝域着色器访问根签名。
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS
值: 0x10
拒绝几何着色器访问根签名。
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS
值: 0x20
拒绝像素着色器访问根签名。
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT
值: 0x40
应用选择使用流输出。 省略此标志可能会导致某些硬件上保存一个根参数空间。 如果不需要流输出,则省略此标志,尽管优化是次要的。
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE
值: 0x80
根签名与光线追踪着色器一起使用,以定义源自着色器表中的着色器记录的资源绑定。 此标志不能与与图形管道相关的任何其他根签名标志组合使用。 缺少 标志意味着根签名可用于图形或计算,其中计算版本也与光线跟踪的全局根签名共享。
D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS
值: 0x100
拒绝放大着色器访问根签名。
D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS
值: 0x200
拒绝网格着色器访问根签名。
D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED
值: 0x400
允许着色器使用 ResourceDescriptorHeap 内置变量直接为 CBV/SRV/UAV 描述符堆编制索引。
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED
值: 0x800
允许着色器使用 SamplerDescriptorHeap 内置变量直接为采样器描述符堆编制索引。

备注

此枚举在 D3D12_ROOT_SIGNATURE_DESC 结构中使用。

拒绝访问着色器阶段的值在某些硬件上是次要优化。 例如,如果 D3D12_SHADER_VISIBILITY_ALL 标志已设置为将根签名广播到所有着色器阶段,则拒绝访问可能会推翻此规则,并为硬件节省一些工作。 或者,如果着色器非常简单,不需要根签名资源,则此处也可以使用拒绝访问。

要求

   
标头 d3d12.h

另请参阅

核心枚举

创建根签名

D3D12_ROOT_SIGNATURE_DESC