D3D12DDI_WORK_GRAPH_DESC_0108構造体 (d3d12umddi.h)
D3D12DDI_WORK_GRAPH_DESC_0108 構造体は、D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH型の状態サブオブジェクトを定義します。
構文
typedef struct D3D12DDI_WORK_GRAPH_DESC_0108 {
LPCWSTR ProgramName;
UINT Version;
D3D12DDI_WORK_GRAPH_FLAGS_0108 Flags;
UINT NumNodes;
const D3D12DDI_NODE_LIST_ENTRY_0108 *pNodes;
UINT NumEntrypoints;
const D3D12DDI_NODE_LIST_ENTRY_0108 *pEntrypoints;
} D3D12DDI_WORK_GRAPH_DESC_0108;
メンバーズ
ProgramName
作業グラフの名前。 この名前は、指定された状態オブジェクトで一意です。
Version
この作業グラフのバージョン番号 (0 から始まる)。 PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 が使用されている場合、この値は新しいバージョンに対してインクリメントされます。
その他の部分 (おそらく他の作業グラフ) にいくつか追加された状態オブジェクトが、新しく作成された作業グラフを追加した場合、状態オブジェクト自体にいくつかのイテレーションがある場合でも、新しい作業グラフの最初の外観に対してバージョンは 0 になります。 同様に、状態オブジェクトの他の部分に追加が加えられたが、その中の特定の作業グラフが単独で残っている場合、そのバージョンは、次回作業グラフ自体に追加されるまで変更されません。 Version 値は、D3D12DDI_NODE_0108の VersionAdded フィールドで使用されるのと同じ番号付けです。
Flags
作業グラフの動作を制御するフラグを指定する D3D12DDI_WORK_GRAPH_FLAGS_0108 列挙体。
NumNodes
作業グラフ内のノードの数 。追加が行われている場合は、既に存在するものも含まれます。 この値は、pNodes 配列内の要素の数を決定します。
pNodes
各エントリが作業グラフ内のノード定義を表す、D3D12DDI_NODE_LIST_ENTRY_0108 構造体の配列へのポインター。
D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH フラグを使用しても、pNodes はグラフ内のすべてのノードの一覧を指します。 リストの先頭に新しいノードが表示されます。
NumEntrypoints
追加が行われている場合、既存のものを含むエントリポイントの数。 この値は、pEntrypoints 配列内の要素の数を決定します。
pEntrypoints
各エントリが作業グラフのエントリ ポイントを表す、D3D12DDI_NODE_LIST_ENTRY_0108 構造体の配列へのポインター。
D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH フラグを使用しても、pEntryPoints はすべてのエントリ ポイントのリストを指します。 新しいエントリポイントがリストの先頭に表示され、以前のバージョンより後にエントリポイントインデックス番号が続きます。 たとえば、グラフの初期バージョンに 2 つのエントリポイントがあるとします。 このリストには 2 つのエントリがあり、ドライバーは、PFND3D12DDI_DISPATCH_GRAPH_0108からのレコードの割り当てにそれぞれエントリ ポイント インデックス [0] と [1] があることを推論する必要があります。 3 つの新しいエントリ ポイントで追加が行われる場合、新しいグラフ バージョンのリストには 5 つのエントリ ポイント エントリがあり、新しいエントリはリストの先頭に表示されます。 ドライバーは、リストの先頭にある 3 つの新しいエントリ (新しいバージョンのエントリ) のエントリ ポイント インデックスを推測する必要があるため、完全なリストは [2]、[3]、[4]、[0]、[1] になります。 理想的には、これらの割り当ては DDI のランタイムによって提供されたので、ドライバーはこれを把握する必要はありませんが、これは見逃され、修正するのに十分な重要でないと見なされます。
備考
D3D12DDI_WORK_GRAPH_DESC_0108 構造は、作業グラフを記述します。 作業グラフ自体はノードのコレクションであり、各ノードは作業単位またはタスクを表します。 ノードは、実行順序を定義する相互に依存関係を持つことができます。 エントリ ポイントは、実行を開始できるノードであり、通常は依存関係のないノード、またはすぐに実行できるノードです。
ランタイムは API レベルで便利です。たとえば、エントリポイントを一覧表示するだけで作業グラフを定義したり、使用可能なすべてのノードを使用するように要求したりすることもできます。 ランタイムは、API 作業グラフ定義を受け取り、検証し、ドライバーにグラフ内のノードの最終的なセットを提供します(この D3D12DDI_WORK_GRAPH_DESC_0108 構造で示されています)。
詳細については、「作業グラフの」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 11 バージョン 24H2 (WDDM 3.2) |
ヘッダー | d3d12umddi.h |
関連項目
D3D12DDI_WORK_GRAPH_FLAGS_0108
PFND3D12DDI_ADD_TO_STATE_OBJECT_0072