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
アプリでは、Input Assembler の使用をオプトインしています (頂点バッファー バインドのセットを定義する入力レイアウトが必要です)。 このフラグを省略すると、一部のハードウェアに 1 つのルート引数スペースが保存される可能性があります。 最適化は軽微ですが、入力アセンブラーが必要ない場合は、このフラグを省略します。
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
このアプリでは、ストリーム出力の使用をオプトインしています。 このフラグを省略すると、一部のハードウェアに 1 つのルート引数スペースが保存される可能性があります。 最適化は軽微ですが、Stream Output が必要ない場合は、このフラグを省略します。
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 フラグが設定されている場合、アクセスを拒否すると、これを覆い、ハードウェアに何らかの作業が保存される可能性があります。 または、シェーダーが非常に単純で、ルート署名リソースが必要ない場合は、アクセスの拒否もここで使用できます。

要件

   
Header d3d12.h

関連項目

コア列挙

ルート署名の作成

D3D12_ROOT_SIGNATURE_DESC