在Direct3D 12中,D3D12_ROOT_SIGNATURE_FLAGS 枚举用于表示根签名(Root Signature)的标志位。根签名定义了着色器需要的资源,以及资源在管线中的绑定方式。以下是 D3D12_ROOT_SIGNATURE_FLAGS 枚举的定义:
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_NONE: 无特殊标志,表示默认情况。

  •  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT: 允许输入汇编程序输入布局,用于在根签名中指定输入布局。

  •  D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS: 禁止顶点着色器对根参数的访问。

  •  D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS: 禁止细分控制着色器对根参数的访问。

  •  D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS: 禁止域控制着色器对根参数的访问。

  •  D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS: 禁止几何着色器对根参数的访问。

  •  D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS: 禁止像素着色器对根参数的访问。

  •  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT: 允许流输出,用于在根签名中指定流输出。


这些标志位用于在创建根签名时配置根签名的行为,以满足特定的着色器需求和渲染流水线的配置。


转载请注明出处:http://www.pingtaimeng.com/article/detail/26100/Win32 API/D3d12.h/D3D12_ROOT_SIGNATURE_FLAGS