Partager via


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 graphique de travail. Ce nom est unique dans l’objet d’état donné.

Version

Numéro de version de ce graphique de travail, commençant à 0. Lorsque PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 est utilisé, cette valeur s’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 graphe de travail nouvellement créé, 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 graphe 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

Une é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 en cas d’ajout. 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 graphique 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, y compris ceux déjà existants en cas d’ajout. 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 s’affichent au début de la liste et continuent la numérotation de l’index des points d’entrée après les versions précédentes. Par exemple, supposons que la version initiale d’un graphe comporte deux points d’entrée. Cette liste comporte deux entrées, et le pilote doit déduire qu’il a des index de point d’entrée [0] et [1] respectivement pour les affectations d’enregistrements de PFND3D12DDI_DISPATCH_GRAPH_0108. En cas d’ajout, avec 3 nouveaux points d’entrée, la liste de la nouvelle version du graphique comporterait 5 entrées de points d’entrée, avec les nouvelles entrées au début de la liste. Le pilote doit déduire les index de points 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 est [2], [3], [4], [0], [1]. Dans l’idéal, ces affectations auraient été fournies par le runtime dans la DDI afin que le pilote n’ait pas à le comprendre, mais cela a été manqué et jugé pas assez important pour corriger.

Remarques

La structure D3D12DDI_WORK_GRAPH_DESC_0108 décrit un graphique 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 les uns sur les autres, 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 offre des fonctionnalités au niveau de l’API, comme la possibilité de définir un graphe de travail simplement en répertoriant les points d’entrée ou même en demandant l’utilisation de tous les nœuds disponibles. Le runtime prend la définition de graphe de travail de l’API, la valide et donne au pilote l’ensemble final de nœuds dans le graphe, illustré dans cette structure D3D12DDI_WORK_GRAPH_DESC_0108 .

Pour plus d’informations, consultez Graphiques de travail.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 11, version 24H2 (WDDM 3.2)
En-tête d3d12umddi.h

Voir aussi

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