Freigeben über


D3D12DDI_NODE_OUTPUT_0108 Struktur (d3d12umddi.h)

Die D3D12DDI_NODE_OUTPUT_0108 Struktur beschreibt die Ausgabe eines Knotens in einem Arbeitsdiagramm.

Syntax

typedef struct D3D12DDI_NODE_OUTPUT_0108 {
  D3D12DDI_NODE_ID_0108                    FinalName;
  UINT                                     OutputIndex;
  D3D12DDI_NODE_IO_KIND_0108               NodeIOKind;
  UINT                                     NodeIOFlags;
  UINT                                     RecordSizeInBytes;
  BOOL                                     bAllowSparseNodes;
  const D3D12DDI_RECORD_DISPATCH_GRID_0108 *pRecordDispatchGrid;
  const UINT                               *pMaxRecords;
  const UINT                               *pMaxRecordsSharedWithOutputIndex;
  UINT                                     ArraySize;
  const D3D12DDI_NODE_LIST_ENTRY_0108      *pOutputs;
} D3D12DDI_NODE_OUTPUT_0108;

Angehörige

FinalName

Eine D3D12DDI_NODE_ID_0108 Struktur, die den endgültigen Namen des Knotens nach optionalen Umbenennungen auf Anwendungsebene angibt. Wenn ArraySize größer als 1 ist, ist dies die NodeID des Anfangs des Arrays der Knoten, an die ausgegeben wird.

OutputIndex

Nullbasierter Index dieser Ausgabe in der Gruppe der Ausgaben für diesen Knoten (Knotenarrayausgabe zählt als ein Eintrag in diesem Satz). Dieser Index entspricht der Reihenfolge, in der die Ausgaben deklariert werden, und wie sie in den pOutputs Arrays in D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108und D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108angezeigt werden. Daher ist dieser Wert redundant, aber für Klarheit vorgesehen. Andere Member dieser Struktur verweisen auf Knoten, die diesen Indizierungsbereich verwenden.

NodeIOKind

Eine D3D12DDI_NODE_IO_KIND_0108 Enumeration, die die Eingabeklasse angibt. Siehe Knotenausgabedeklaration.

NodeIOFlags

Flags, die zusätzliche Informationen zur Ausgabe des Knotens bereitstellen. Sehen Sie sich die Flags in D3D12DDI_NODE_IO_FLAGS_FLAG_MASK in D3D12DDI_NODE_IO_FLAGS_0108an. Siehe auch Knoteneingabedeklaration.

RecordSizeInBytes

Größe des Ausgabedatensatzes in Byte. Dies kann 0 sein, wenn NodeIOKind-D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108ist.

bAllowSparseNodes

Boolescher Wert, der angibt, ob sparse Knoten zulässig sind. Dieses Element ist dem AllowSparseNodes-Attribut einer Knotenausgabe zugeordnet oder kann auf Anwendungsebene überschrieben werden, sodass der endgültige Status hier angegeben ist.

pRecordDispatchGrid

Wenn nullptr, enthält der Ausgabedatensatz nicht SV_DispatchGrid. Verweist sonst auf eine Beschreibung, wie SV_DispatchGrid im Ausgabedatensatz angezeigt werden. Siehe D3D12DDI_RECORD_DISPATCH_GRID_0108.

pMaxRecords

Maximale Anzahl von Ausgabedatensätzen, die eine Threadgruppe an diesen Ausgabeknoten/-array ausgeben wird. Wenn das Ausgabedatensatzbudget für diese Ausgabe für eine andere Ausgabe freigegeben wird, wird pMaxRecords-nullptr und pMaxRecordsSharedWithOutputIndex- stattdessen angegeben. Wenn der Shader [MaxRecordsSharedWith()]deklariert hat, ist es gültig, ihn mit pMaxRecords-außer Kraft zu setzen, wodurch das Ausgabebudget nicht mehr freigegeben wird.

pMaxRecordsSharedWithOutputIndex

Wenn diese Ausgabe das Ausgabebudget mit einer anderen Ausgabe teilt, verweist pMaxRecordsSharedWithOutputIndex auf den 0-basierten Index dieser Ausgabe basierend auf der reihenfolge, in der sie deklariert werden, und wie sie in den pOutputs Arrays in D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108angezeigt werden. und D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. Die ausgabe, auf die verwiesen wird, hat pMaxRecords angegeben. Wenn die aktuelle Ausgabe ihr Ausgabebudget nicht teilt, pMaxRecordsSharedWithIndex-nullptrist. Wenn der Shader [MaxRecords()] deklariert hat, ist er gültig, um ihn mit pMaxRecordsSharedWithIndex-außer Kraft zu setzen, wodurch das Ausgabebudget jetzt für eine andere Ausgabe freigegeben wird.

ArraySize

Die Anzahl der Knoten im Array der Knoten, an die ausgegeben wird. Wenn dies 1 ist, ist die Ausgabe ein einzelner Knoten. Wenn dies größer als 1 ist, ist die Ausgabe ein Array von Knoten. Die Knoten sind im Array zusammenhängend, und der erste Knoten ist der durch FinalNameangegebene Knoten. Ein Wert von 0xffffffff bedeutet eine ungebundene Knotenarraygröße, die nur zulässig ist, wenn bAllowSparseNodes wahr ist.

pOutputs

Liste (D3D12DDI_NODE_LIST_ENTRY) von Knoten (D3D12DDI_NODE_0108), an die dieser Knoten ausgegeben wird. Wenn pOutputs-nullptr wird dieser Knoten nicht an andere Knoten ausgegeben. Wenn bAllowSparseNodes wahr ist, ist diese Liste nicht notwendigerweise so lange wie ArraySize. Unabhängig von bAllowSparseNodes Zustand sollten Treiber nicht davon ausgehen, dass sich die Listeneinträge in der Arrayindexreihenfolge befinden. Der Arrayindex einer bestimmten Ausgabe befindet sich in der Knoten-ID. Wenn AddToStateObject() Ausgaben hinzufügt, werden Ergänzungen am Anfang der Liste angezeigt, was ein weiterer Grund dafür ist, dass sie keine Arrayindexreihenfolge sind.

Bemerkungen

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_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108