次の方法で共有


D3D12_GLOBAL_ROOT_SIGNATURE 構造体 (d3d12.h)

関連付けられたシェーダーで使用されるグローバル ルート署名の状態サブ構造を定義します。

構文

typedef struct D3D12_GLOBAL_ROOT_SIGNATURE {
  ID3D12RootSignature *pGlobalRootSignature;
} D3D12_GLOBAL_ROOT_SIGNATURE;

メンバー

pGlobalRootSignature

グローバル ルート署名として機能するルート署名。 状態オブジェクトは、このシグネチャへの参照を保持します。

解説

状態オブジェクトにこのサブオブジェクトが存在することは省略可能です。 特定のシェーダー関数に関連付けられているグローバルルートシグネチャとローカルルートシグネチャの組み合わせは、グローバルおよびローカルルートシグネチャ間で重複を持たないシェーダーによって宣言されたすべてのリソースバインディングを定義する必要があります。

呼び出しグラフ内の特定の関数が特定のグローバル ルート署名に関連付けられている場合、グラフ内の他の関数は、同じグローバル ルート署名に関連付けるか、または何も関連付けず、シェーダー エントリ (呼び出しグラフのルート) をグローバル ルート署名に関連付ける必要があります。

状態オブジェクト内で異なるグローバル ルート署名 (またはなし) を使用できるシェーダーが異なりますが、コマンド リストから特定 の DispatchRays 操作中に参照されるすべてのシェーダーで、計算ルート署名としてコマンド リストに設定されているものと同じグローバル ルート署名が指定されている必要があります。 そのため、シェーダーの異なるサブセットに関連付けられた複数のグローバル ルート署名を持つ 1 つの大きな状態オブジェクトを定義することが有効です。 一部のシェーダーで異なるグローバル ルート署名が使用されるという理由だけで、アプリは状態オブジェクトの分割を強制されません。

要件

   
Header d3d12.h