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;

Angehörige

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, erhöht sich dieser Wert für neue Versionen.

Wenn ein Zustandsobjekt, das ein paar Ergänzungen enthält, zu anderen Teilen davon (vielleicht andere Arbeitsdiagramme) ein neu erstelltes Arbeitsdiagramm erhält, wird Version 0 für die anfängliche Darstellung des neuen Arbeitsdiagramms sein, obwohl das Zustandsobjekt selbst einige Iterationen hatte. Wenn Hinzufügungen zu anderen Teilen eines Zustandsobjekts vorgenommen werden, aber ein bestimmtes Arbeitsdiagramm darin allein gelassen wird, ändert sich die Version erst, wenn das nächste Mal eine Ergänzung zum Arbeitsdiagramm selbst vorgenommen wird. Der Wert "Version" ist dieselbe Nummerierung, die im Feld VersionAddedD3D12DDI_NODE_0108verwendet wird.

Flags

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

NumNodes

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

pNodes

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

Auch bei der kennzeichnung D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH zeigt 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 stattfindet. Dieser Wert bestimmt die Anzahl der Elemente in den pEntrypoints Arrays.

pEntrypoints

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

Auch bei der D3D12DDI_WORK_GRAPH_FLAG_ADD_TO_EXISTING_WORK_GRAPH-Kennzeichnung verweist pEntryPoints auf eine Liste aller Einstiegspunkte. Neue Einstiegspunkte werden am Anfang der Liste angezeigt und setzen die Indexnummerierung nach früheren Versionen fort. Angenommen, die ursprüngliche Version eines Diagramms weist zwei Einstiegspunkte auf. Diese Liste hätte zwei Einträge, und der Treiber muss ableiten, dass sie Einstiegspunktindizes [0] bzw. [1] für Datensatzzuweisungen aus PFND3D12DDI_DISPATCH_GRAPH_0108haben. Wenn eine Ergänzung erfolgt, mit 3 neuen Einstiegspunkten, hätte die Liste für die neue Graph-Version 5 Einstiegspunkteinträge mit den neuen Einträgen am Anfang der Liste. Der Treiber muss die Einstiegspunktindizes der 3 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] ist. Im Idealfall wurden diese Zuordnungen von der Laufzeit in der DDI bereitgestellt, sodass der Treiber dies nicht ermitteln müsste, aber dies wurde verpasst und gilt als nicht wichtig genug, um das Problem zu beheben.

Bemerkungen

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 Abhängigkeiten voneinander 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 solche, die sofort ausgeführt werden können.

Die Laufzeit bietet Komfort auf API-Ebene, z. B. das Definieren eines Arbeitsdiagramms nur durch Auflisten von Einstiegspunkten oder sogar durch Die Aufforderung, alle verfügbaren Knoten zu verwenden. Die Laufzeit verwendet die API-Arbeitsdiagrammdefinition, überprüft sie und gibt dem Treiber den endgültigen Satz von Knoten im Diagramm, dargestellt in dieser D3D12DDI_WORK_GRAPH_DESC_0108 Struktur.

Weitere Informationen finden Sie unter Arbeitsdiagramme.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 11, Version 24H2 (WDDM 3.2)
Header- d3d12umddi.h

Siehe auch

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