次の方法で共有


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_0108D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108、および D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108の配列 pOutputs にどのように表示されるかに一致します。 そのため、この値は冗長ですが、わかりやすくするために提供されます。 この構造体の他のメンバーは、このインデックス作成スペースを使用してノードを参照します。

NodeIOKind

入力のクラスを指定する D3D12DDI_NODE_IO_KIND_0108 列挙体。 ノード出力宣言 参照してください。

NodeIOFlags

ノードの出力に関する追加情報を提供するフラグ。 D3D12DDI_NODE_IO_FLAGS_0108D3D12DDI_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

スレッド グループがこの出力ノード/配列に出力する出力レコードの最大数。 この出力の出力レコード予算が別の出力と共有されている場合、pMaxRecordsnullptr され、代わりに pMaxRecordsSharedWithOutputIndex が指定されます。 [MaxRecordsSharedWith()] 宣言されたシェーダーが場合は、pMaxRecords でオーバーライドすると有効です。これにより、出力予算が共有されなくなります。

pMaxRecordsSharedWithOutputIndex

この出力が別の出力と出力レコードの予算を共有する場合、pMaxRecordsSharedWithOutputIndex は、宣言されている順序に基づいて、その出力の 0 から始まるインデックスをポイントし、D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108pOutputs 配列にどのように表示されるかを示します。 と 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)。 pOutputsnullptr 場合、このノードは他のノードに出力されません。 bAllowSparseNodes が true の場合、このリストは必ずしも ArraySize 限りません。 bAllowSparseNodes 状態 関係なく、ドライバーはリスト エントリが配列インデックス順であると想定しないでください。 特定の出力の配列インデックスは、そのノード ID にあります。 AddToStateObject() 出力を追加すると、リストの先頭に加算が表示されます。これは、配列インデックスの順序であると想定しないもう 1 つの理由です。

備考

詳細については、「作業グラフの」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 11 バージョン 24H2 (WDDM 3.2)
ヘッダー d3d12umddi.h

関連項目

D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108