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 |