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;

Member

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 von Knoten, an das ausgegeben wird.

OutputIndex

Nullbasierter Index dieser Ausgabe im Satz von 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_0108 und D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108 angezeigt werden. Daher ist dieser Wert redundant, aber aus Gründen der Übersichtlichkeit bereitgestellt. Andere Member dieser Struktur verweisen auf Knoten, die diesen Indizierungsbereich verwenden.

NodeIOKind

Eine D3D12DDI_NODE_IO_KIND_0108-Enumeration , die die Eingabeklasse angibt. Weitere Informationen finden Sie unter 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_0108 an. Weitere Informationen finden Sie unter Knoteneingabedeklaration.

RecordSizeInBytes

Größe des Ausgabedatensatzes in Bytes. Kann 0 sein, wenn NodeIOKindD3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108 ist.

bAllowSparseNodes

Boolescher Wert, der angibt, ob Sparseknoten zulässig sind. Dieser Member wird dem AllowSparseNodes-Attribut auf einer Knotenausgabe zugeordnet oder kann auf Anwendungsebene überschrieben werden, sodass hier die endgültige status angegeben wird.

pRecordDispatchGrid

Wenn nullptrder Wert ist, enthält der Ausgabedatensatz keine SV_DispatchGrid. Andernfalls verweist auf eine Beschreibung, wie SV_DispatchGrid im Ausgabedatensatz angezeigt wird. Siehe D3D12DDI_RECORD_DISPATCH_GRID_0108.

pMaxRecords

Maximale Anzahl von Ausgabedatensätzen, die eine Threadgruppe an diesen Ausgabeknoten/Array ausgibt. Wenn das Ausgabedatensatzbudget für diese Ausgabe für eine andere Ausgabe freigegeben wird, wird nullptrpMaxRecords und stattdessen pMaxRecordsSharedWithOutputIndex angegeben. Wenn der Shader [MaxRecordsSharedWith()] deklariert hat, ist es gültig, ihn mit pMaxRecords zu überschreiben, wodurch das Ausgabebudget nicht mehr freigegeben wird.

pMaxRecordsSharedWithOutputIndex

Wenn diese Ausgabe ihr Ausgabedatensatzbudget 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_0108 und D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108 angezeigt werden. Für die Ausgabe, auf die verwiesen wird, ist pMaxRecords angegeben. Wenn die aktuelle Ausgabe ihr Ausgabedatensatzbudget nicht teilt, ist nullptrpMaxRecordsSharedWithIndex . Wenn der Shader [MaxRecords()] deklariert hat, ist es gültig, ihn mit pMaxRecordsSharedWithIndex zu überschreiben, wodurch das Ausgabebudget jetzt für eine andere Ausgabe freigegeben wird.

ArraySize

Die Anzahl der Knoten im Array von Knoten, an die ausgegeben wird. Wenn dies 1 ist, ist die Ausgabe ein einzelner Knoten. Wenn dieser 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 FinalName angegebene Knoten. Ein Wert von steht für die Größe des 0xffffffff nicht gebundenen Knotenarrays, die nur zulässig ist, wenn bAllowSparseNodes true ist.

pOutputs

Listet (D3D12DDI_NODE_LIST_ENTRY) der Knoten (D3D12DDI_NODE_0108) auf, an die dieser Knoten ausgegeben wird. Wenn pOutputs ist, wird nullptr dieser Knoten nicht an andere Knoten ausgegeben. Wenn bAllowSparseNodes true ist, ist diese Liste nicht unbedingt so lang wie ArraySize. Unabhängig vom bAllowSparseNodes-Zustand sollten Treiber nicht davon ausgehen, dass die Listeneinträge in der Arrayindexreihenfolge vorhanden sind. Der Arrayindex einer angegebenen Ausgabe befindet sich in der Knoten-ID. Wenn AddToStateObject() Ausgaben hinzufügt, werden ergänzungen am Anfang der Liste angezeigt, was ein weiterer Grund ist, nicht davon auszugehen, dass es sich um eine Arrayindexreihenfolge handelt.

Hinweise

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_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108