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