D3D12_ROOT_SIGNATURE_FLAGS Enumeration

Specifies options for root signature layout.

Syntax

typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
  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                 ,
  D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE
} ;

Constants

D3D12_ROOT_SIGNATURE_FLAG_NONE Indicates default behavior.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT The app is opting in to using the Input Assembler (requiring an input layout that defines a set of vertex buffer bindings). Omitting this flag can result in one root argument space being saved on some hardware. Omit this flag if the Input Assembler is not required, though the optimization is minor.
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS Denies the vertex shader access to the root signature.
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS Denies the hull shader access to the root signature.
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS Denies the domain shader access to the root signature.
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS Denies the geometry shader access to the root signature.
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS Denies the pixel shader access to the root signature.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT The root signature allows stream output. This flag can be specified for root signatures authored in HLSL, similar to how the other flags are specified. ID3D12Device::CreateGraphicsPipelineState will fail if the geometry shader contains stream output but the root signature does not have this flag set. Omit this flag if stream output is not required.
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE

Remarks

This enum is used in the D3D12_ROOT_SIGNATURE_DESC structure.

The value in denying access to shader stages is a minor optimization on some hardware. If, for example, the D3D12_SHADER_VISIBILITY_ALL flag has been set to broadcast the root signature to all shader stages, then denying access can overrule this and save the hardware some work. Alternatively if the shader is so simple that no root signature resources are needed, then denying access could be used here too.

Requirements

   
Header d3d12.h

See Also

Core Enumerations

Creating a Root Signature

D3D12_ROOT_SIGNATURE_DESC