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_WORK_GRAPH_FLAGS_0108
PFND3D12DDI_ADD_TO_STATE_OBJECT_0072