Condividi tramite


struttura D3D12DDI_WORK_GRAPH_DESC_0108 (d3d12umddi.h)

La struttura D3D12DDI_WORK_GRAPH_DESC_0108 definisce il sottooggetto di stato di tipo D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH.

Sintassi

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;

Members

ProgramName

Nome del grafico di lavoro. Questo nome è univoco nell'oggetto di stato specificato.

Version

Numero di versione di questo grafico di lavoro, a partire da 0. Quando si usa PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 , questo valore viene incrementato per le nuove versioni.

Se un oggetto di stato che ha avuto alcune aggiunte ad altre parti di esso (ad esempio altri grafici di lavoro) ottiene un grafico di lavoro appena creato aggiunto, Version sarà 0 per l'aspetto iniziale del nuovo grafico di lavoro, anche se l'oggetto di stato stesso ha avuto alcune iterazioni. Analogamente, se vengono apportate aggiunte ad altre parti di un oggetto di stato, ma viene lasciato solo un grafico di lavoro specifico, la sua versione non viene modificata fino alla successiva aggiunta al grafico di lavoro stesso. Il valore Version è lo stesso numero utilizzato nel campo VersionAdded di D3D12DDI_NODE_0108.

Flags

Enumerazione D3D12DDI_WORK_GRAPH_FLAGS_0108 che specifica i flag che controllano il comportamento del grafico di lavoro.

NumNodes

Numero di nodi all'interno del grafico di lavoro, inclusi quelli già esistenti se si verifica un'aggiunta. Questo valore determina il numero di elementi nella matrice pNodes .

pNodes

Puntatore a una matrice di strutture D3D12DDI_NODE_LIST_ENTRY_0108 , in cui ogni voce rappresenta una definizione di nodo nel grafico di lavoro.

Anche con il flag D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH , pNodes punta a un elenco di tutti i nodi nel grafico. I nuovi nodi vengono visualizzati all'inizio dell'elenco.

NumEntrypoints

Numero di punti di ingresso che includono quelli già esistenti se si verifica un'aggiunta. Questo valore determina il numero di elementi nella matrice pEntrypoints .

pEntrypoints

Puntatore a una matrice di strutture D3D12DDI_NODE_LIST_ENTRY_0108 , in cui ogni voce rappresenta un punto di ingresso nel grafico di lavoro.

Anche con il flag D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH , pEntryPoints punta a un elenco di tutti i punti di ingresso. I nuovi punti di ingresso vengono visualizzati all'inizio dell'elenco e continuano a numerare l'indice dei punti di ingresso dopo le versioni precedenti. Si supponga, ad esempio, che la versione iniziale di un grafico abbia due punti di ingresso. Questo elenco contiene due voci e il driver deve dedurre che hanno indici di punto di ingresso [0] e [1] rispettivamente per le assegnazioni di record da PFND3D12DDI_DISPATCH_GRAPH_0108. Se si verifica un'aggiunta, con 3 nuovi punti di ingresso, l'elenco per la nuova versione del grafico avrà 5 voci del punto di ingresso, con le nuove voci all'inizio dell'elenco. Il driver deve dedurre gli indici del punto di ingresso delle 3 nuove voci all'inizio dell'elenco (le voci con la nuova versione), quindi l'elenco completo sarà [2], [3], [4], [0], [1]. Idealmente queste assegnazioni sarebbero state fornite dal runtime nell'DDI in modo che il driver non avrebbe dovuto capire, ma questo non è stato perso e considerato non abbastanza importante da correggere.

Commenti

La struttura D3D12DDI_WORK_GRAPH_DESC_0108 descrive un grafico di lavoro. Il grafico di lavoro è una raccolta di nodi, in cui ogni nodo rappresenta un'unità di lavoro o un'attività. I nodi possono avere dipendenze l'una dall'altra, che definiscono l'ordine di esecuzione. I punti di ingresso sono i nodi in cui l'esecuzione può iniziare e sono in genere i nodi senza dipendenze o quelli che possono essere eseguiti immediatamente.

Il runtime offre praticità a livello di API, ad esempio la possibilità di definire un grafico di lavoro solo elencando i punti di ingresso o anche richiedendo l'uso di tutti i nodi disponibili. Il runtime accetta la definizione del grafico di lavoro dell'API, la convalida e fornisce al driver il set finale di nodi nel grafico, illustrato in questa struttura D3D12DDI_WORK_GRAPH_DESC_0108 .

Per altre informazioni, vedere Grafici di lavoro.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 versione 24H2 (WDDM 3.2)
Intestazione d3d12umddi.h

Vedi anche

D3D12DDI_NODE_LIST_ENTRY_0108

D3D12DDI_STATE_SUBOBJECT_TYPE

D3D12DDI_WORK_GRAPH_FLAGS_0108

PFND3D12DDI_ADD_TO_STATE_OBJECT_0072

PFND3D12DDI_CREATE_STATE_OBJECT_0054

PFND3D12DDI_DISPATCH_GRAPH_0108