structure D3D12DDI_WORK_GRAPH_DESC_0108 (d3d12umddi.h)
La structure D3D12DDI_WORK_GRAPH_DESC_0108 définit le sous-objet d’état de type D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH.
Syntaxe
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;
Membres
ProgramName
Nom du graphe de travail. Ce nom est unique dans l’objet d’état donné.
Version
Numéro de version de ce graphe de travail, commençant à 0. Lorsque PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 est utilisé, cette valeur incrémente pour les nouvelles versions.
Si un objet d’état qui a eu quelques ajouts à d’autres parties de celui-ci (peut-être d’autres graphiques de travail) obtient un graphique de travail nouvellement créé ajouté, Version sera 0 pour l’apparence initiale du nouveau graphe de travail, même si l’objet d’état lui-même a eu quelques itérations. De même, si des ajouts sont effectués à d’autres parties d’un objet d’état, mais qu’un graphique de travail particulier dans celui-ci est laissé seul, sa version ne change pas jusqu’à la prochaine ajout au graphe de travail lui-même. La valeur Version est la même numérotation que celle utilisée dans le champ VersionAdded de D3D12DDI_NODE_0108.
Flags
Énumération D3D12DDI_WORK_GRAPH_FLAGS_0108 qui spécifie des indicateurs qui contrôlent le comportement du graphique de travail.
NumNodes
Nombre de nœuds dans le graphique de travail, y compris ceux déjà existants si un ajout se produit. Cette valeur détermine le nombre d’éléments dans le tableau pNodes.
pNodes
Pointeur vers un tableau de structures D3D12DDI_NODE_LIST_ENTRY_0108, où chaque entrée représente une définition de nœud dans le graphe de travail.
Même avec l’indicateur D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH, pNodes pointe vers une liste de tous les nœuds du graphique. Les nouveaux nœuds apparaissent au début de la liste.
NumEntrypoints
Nombre de points d’entrée incluant déjà existants si un ajout se produit. Cette valeur détermine le nombre d’éléments dans le tableau pEntrypoints.
pEntrypoints
Pointeur vers un tableau de structures D3D12DDI_NODE_LIST_ENTRY_0108, où chaque entrée représente un point d’entrée dans le graphique de travail.
Même avec l’indicateur D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH, pEntryPoints pointe vers une liste de tous les points d’entrée. Les nouveaux points d’entrée apparaissent au début de la liste et continuent la numérotation des index de point d’entrée après les versions précédentes. Par exemple, supposons que la version initiale d’un graphique comporte deux points d’entrée. Cette liste aurait deux entrées et le pilote doit déduire qu’ils ont des index de point d’entrée [0] et [1] respectivement pour les affectations d’enregistrements de PFND3D12DDI_DISPATCH_GRAPH_0108. Si un ajout se produit, avec 3 nouveaux points d’entrée, la liste de la nouvelle version de graphe aurait 5 entrées de point d’entrée, avec les nouvelles entrées au début de la liste. Le pilote doit déduire les index de point d’entrée des 3 nouvelles entrées au début de la liste (les entrées avec la nouvelle version), de sorte que la liste complète soit [2], [3], [4], [0], [1]. Dans l’idéal, ces affectations auraient été fournies par l’exécution dans la DDI afin que le pilote n’ait pas à déterminer cela, mais cela a été manqué et jugé assez important pour corriger.
Remarques
La structure D3D12DDI_WORK_GRAPH_DESC_0108 décrit un graphe de travail. Le graphe de travail lui-même est une collection de nœuds, où chaque nœud représente une unité de travail ou une tâche. Les nœuds peuvent avoir des dépendances entre eux, qui définissent l’ordre d’exécution. Les points d’entrée sont les nœuds où l’exécution peut commencer et sont généralement les nœuds sans dépendances ou ceux qui peuvent être exécutés immédiatement.
Le runtime fournit des commodités au niveau de l’API, comme la possibilité de définir un graphique de travail uniquement en listant les points d’entrée ou même en demandant à tous les nœuds disponibles d’être utilisés. Le runtime accepte la définition de graphique de travail de l’API, le valide et donne au pilote le jeu final de nœuds dans le graphique, représenté dans cette structure D3D12DDI_WORK_GRAPH_DESC_0108.
Pour plus d’informations, consultez graphiques Work.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 11, version 24H2 (WDDM 3.2) |
d’en-tête | d3d12umddi.h |
Voir aussi
D3D12DDI_WORK_GRAPH_FLAGS_0108
PFND3D12DDI_ADD_TO_STATE_OBJECT_0072