Freigeben über


D3D12DDI_WORK_GRAPH_DESC_0108-Struktur (d3d12umddi.h)

Die D3D12DDI_WORK_GRAPH_DESC_0108-Struktur definiert das Zustandsunterobjekt vom Typ D3D12DDI_STATE_SUBOBJECT_TYPE_WORK_GRAPH.

Syntax

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;

Member

ProgramName

Name des Arbeitsdiagramms. Dieser Name ist im angegebenen Zustandsobjekt eindeutig.

Version

Die Versionsnummer dieses Arbeitsdiagramms, beginnend bei 0. Wenn PFND3D12DDI_ADD_TO_STATE_OBJECT_0072 verwendet wird, wird dieser Wert für neue Versionen erhöht.

Wenn ein Zustandsobjekt, das einige Ergänzungen zu anderen Teilen davon (vielleicht andere Arbeitsgraphen) aufweist, ein neu erstelltes Arbeitsdiagramm hinzugefügt wird, ist Version für die anfängliche Darstellung des neuen Arbeitsgraphen 0, obwohl das Zustandsobjekt selbst einige Iterationen hatte. Wenn an anderen Teilen eines Zustandsobjekts Ergänzungen vorgenommen werden, aber ein bestimmter Arbeitsgraph darin allein gelassen wird, ändert sich seine Version erst, wenn das nächste Mal eine Ergänzung zum Arbeitsgraphen selbst vorgenommen wird. Der Version-Wert ist die gleiche Nummerierung, die im Feld VersionAdded von D3D12DDI_NODE_0108 verwendet wird.

Flags

Eine D3D12DDI_WORK_GRAPH_FLAGS_0108-Enumeration , die Flags angibt, die das Verhalten des Arbeitsdiagramms steuern.

NumNodes

Die Anzahl der Knoten innerhalb des Arbeitsdiagramms, einschließlich bereits vorhandener Knoten, wenn eine Ergänzung erfolgt. Dieser Wert bestimmt die Anzahl der Elemente im pNodes-Array .

pNodes

Zeiger auf ein Array von D3D12DDI_NODE_LIST_ENTRY_0108 Strukturen, wobei jeder Eintrag eine Knotendefinition im Arbeitsdiagramm darstellt.

Selbst mit dem flag D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH verweist pNodes auf eine Liste aller Knoten im Diagramm. Neue Knoten werden am Anfang der Liste angezeigt.

NumEntrypoints

Anzahl der Einstiegspunkte, einschließlich bereits vorhandener, wenn eine Ergänzung erfolgt. Dieser Wert bestimmt die Anzahl der Elemente im pEntrypoints-Array .

pEntrypoints

Zeiger auf ein Array von D3D12DDI_NODE_LIST_ENTRY_0108 Strukturen, wobei jeder Eintrag einen Einstiegspunkt im Arbeitsdiagramm darstellt.

Selbst mit dem flag D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH zeigt pEntryPoints auf eine Liste aller Einstiegspunkte. Neue Einstiegspunkte werden am Anfang der Liste angezeigt, und die Nummerierung des Eintragspunktindexes wird nach früheren Versionen fortgesetzt. Angenommen, die anfängliche Version eines Graphen weist zwei Einstiegspunkte auf. Diese Liste würde zwei Einträge enthalten, und der Treiber muss ableiten, dass er über Einstiegspunktindizes [0] bzw. [1] für Datensatzzuweisungen aus PFND3D12DDI_DISPATCH_GRAPH_0108 verfügt. Wenn eine Ergänzung erfolgt, mit 3 neuen Einstiegspunkten, hätte die Liste für die neue Graphversion 5 Einstiegspunkteinträge, wobei die neuen Einträge am Anfang der Liste stehen. Der Treiber muss die Einstiegspunktindizes der drei neuen Einträge am Anfang der Liste (die Einträge mit der neuen Version) ableiten, sodass die vollständige Liste [2], [3], [4], [0], [1] wäre. Im Idealfall wären diese Zuweisungen von der Laufzeit im DDI bereitgestellt worden, sodass der Treiber dies nicht herausfinden musste, aber dies wurde verpasst und als nicht wichtig genug für die Behebung angesehen.

Hinweise

Die D3D12DDI_WORK_GRAPH_DESC_0108-Struktur beschreibt ein Arbeitsdiagramm. Das Arbeitsdiagramm selbst ist eine Sammlung von Knoten, wobei jeder Knoten eine Arbeitseinheit oder eine Aufgabe darstellt. Knoten können Voneinanderabhängigkeiten aufweisen, die die Ausführungsreihenfolge definieren. Einstiegspunkte sind die Knoten, auf denen die Ausführung beginnen kann, und sind in der Regel die Knoten ohne Abhängigkeiten oder knoten, die sofort ausgeführt werden können.

Die Runtime bietet Benutzerfreundlichkeiten auf API-Ebene, z. B. die Möglichkeit, ein Arbeitsdiagramm zu definieren, indem sie einfach Einstiegspunkte auflisten oder sogar nach der Verwendung aller verfügbaren Knoten fragt. Die Laufzeit übernimmt die DEFINITION des API-Arbeitsdiagramms, überprüft sie und gibt dem Treiber den endgültigen Satz von Knoten im Graphen, der in dieser D3D12DDI_WORK_GRAPH_DESC_0108-Struktur dargestellt ist.

Weitere Informationen finden Sie unter Arbeitsdiagramme.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 11, Version 24H2 (WDDM 3.2)
Kopfzeile d3d12umddi.h

Weitere Informationen

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