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

NodeIOKind

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

NodeIOFlags

ノードの出力に関する追加情報を提供するフラグ。 D3D12DDI_NODE_IO_FLAGS_0108のD3D12DDI_NODE_IO_FLAGS_FLAG_MASK内のフラグを参照してください。 「ノード入力宣言」も参照してください。

RecordSizeInBytes

出力レコードのサイズ (バイト単位)。 NodeIOKindD3D12DDI_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_0108D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108、および D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108pOutputs 配列にどのように表示されるかに基づいて、その出力の 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

D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108