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