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-nullptr
ist. 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