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内のフラグを参照してください。 「ノード入力宣言」も参照してください。
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 は、宣言されている順序と、それらが D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108、D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108、および D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108 の pOutputs 配列にどのように表示されるかに基づいて、その出力の 0 から始まるインデックスを指します。 ポイント先の出力に 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) |
Header | d3d12umddi.h |
こちらもご覧ください
D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108