D3D12DDI_NODE_OUTPUT_0108構造体 (d3d12umddi.h)
D3D12DDI_NODE_OUTPUT_0108 構造体は、作業グラフ内のノードの出力を記述します。
構文
typedef struct D3D12DDI_NODE_OUTPUT_0108 {
D3D12DDI_NODE_ID_0108 FinalName;
UINT OutputIndex;
D3D12DDI_NODE_IO_KIND_0108 NodeIOKind;
UINT NodeIOFlags;
UINT RecordSizeInBytes;
BOOL bAllowSparseNodes;
const D3D12DDI_RECORD_DISPATCH_GRID_0108 *pRecordDispatchGrid;
const UINT *pMaxRecords;
const UINT *pMaxRecordsSharedWithOutputIndex;
UINT ArraySize;
const D3D12DDI_NODE_LIST_ENTRY_0108 *pOutputs;
} D3D12DDI_NODE_OUTPUT_0108;
メンバーズ
FinalName
アプリケーション レベルで行う省略可能な名前変更の後に、ノードの最終的な名前を指定する D3D12DDI_NODE_ID_0108 構造体。 ArraySize が 1 より大きい場合、これは出力先のノードの配列の先頭の NodeID です。
OutputIndex
このノードの出力セット内のこの出力の 0 から始まるインデックス (ノード配列の出力はこのセット内の 1 つのエントリとしてカウントされます)。 このインデックスは、出力が宣言される順序と、D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108、D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108、および D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108の配列 pOutputs にどのように表示されるかに一致します。 そのため、この値は冗長ですが、わかりやすくするために提供されます。 この構造体の他のメンバーは、このインデックス作成スペースを使用してノードを参照します。
NodeIOKind
入力のクラスを指定する D3D12DDI_NODE_IO_KIND_0108 列挙体。 ノード出力宣言 参照してください。
NodeIOFlags
ノードの出力に関する追加情報を提供するフラグ。 D3D12DDI_NODE_IO_FLAGS_0108の D3D12DDI_NODE_IO_FLAGS_FLAG_MASK 内のフラグを参照してください。 Node 入力宣言 も参照してください。
RecordSizeInBytes
出力レコードのサイズ (バイト単位)。 NodeIOKind が D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108 場合は 0 にできます。
bAllowSparseNodes
スパース ノードを許可するかどうかを指定するブール値。 このメンバーは、ノード出力で AllowSparseNodes 属性にマップされるか、アプリケーション レベルでオーバーライドできるため、最終的な状態がここに示されます。
pRecordDispatchGrid
nullptr
場合、出力レコードには SV_DispatchGridが含まれません。 それ以外の場合は、出力レコード SV_DispatchGrid 表示される方法の説明をポイントします。
D3D12DDI_RECORD_DISPATCH_GRID_0108を参照してください。
pMaxRecords
スレッド グループがこの出力ノード/配列に出力する出力レコードの最大数。 この出力の出力レコード予算が別の出力と共有されている場合、pMaxRecords は nullptr
され、代わりに pMaxRecordsSharedWithOutputIndex が指定されます。 [MaxRecordsSharedWith()] 宣言されたシェーダーが場合は、pMaxRecords でオーバーライドすると有効です。これにより、出力予算が共有されなくなります。
pMaxRecordsSharedWithOutputIndex
この出力が別の出力と出力レコードの予算を共有する場合、pMaxRecordsSharedWithOutputIndex は、宣言されている順序に基づいて、その出力の 0 から始まるインデックスをポイントし、D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108、D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108、pOutputs 配列にどのように表示されるかを示します。 と D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108します。 指定された出力には pMaxRecords 指定されています。 現在の出力が出力レコードの予算を共有していない場合は、pMaxRecordsSharedWithIndex nullptr
。 シェーダーが [MaxRecords()]を宣言した場合、pMaxRecordsSharedWithIndex でオーバーライドすると有効です。これにより、出力予算が別の出力と共有されるようになりました。
ArraySize
出力先のノードの配列内のノードの数。 これが 1 の場合、出力は 1 つのノードになります。 これが 1 より大きい場合、出力はノードの配列です。 ノードは配列内で連続しており、最初のノードは FinalName で指定ノードです。
0xffffffff
の値は、バインドされていないノード配列サイズを意味します。これは、bAllowSparseNodes が true の場合にのみ許可されます。
pOutputs
このノードが出力するノード (D3D12DDI_NODE_0108) のリスト (D3D12DDI_NODE_LIST_ENTRY)。
pOutputs が nullptr
場合、このノードは他のノードに出力されません。
bAllowSparseNodes が true の場合、このリストは必ずしも ArraySize 限りません。 bAllowSparseNodes 状態 関係なく、ドライバーはリスト エントリが配列インデックス順であると想定しないでください。 特定の出力の配列インデックスは、そのノード ID にあります。 AddToStateObject() 出力を追加すると、リストの先頭に加算が表示されます。これは、配列インデックスの順序であると想定しないもう 1 つの理由です。
備考
詳細については、「作業グラフの」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 11 バージョン 24H2 (WDDM 3.2) |
ヘッダー | d3d12umddi.h |
関連項目
D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108