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 nullptr
der 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 nullptr
pMaxRecords 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 nullptr
pMaxRecordsSharedWithIndex . 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