共用方式為


D3D12DDI_NODE_OUTPUT_0108結構 (d3d12umddi.h)

D3D12DDI_NODE_OUTPUT_0108 結構描述工作圖形中節點的輸出。

語法

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;

成員

FinalName

D3D12DDI_NODE_ID_0108 結構,指定在應用層級完成任何選擇性重新命名之後,節點的最終名稱。 如果 ArraySize 大於 1,這是輸出至之節點陣列開頭的 NodeID。

OutputIndex

此節點輸出集合中這個輸出的以零起始的索引(節點數位輸出計算為此集合中的一個專案)。 此索引符合宣告輸出的順序,以及輸出在 D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108中,pOutputs 陣列中的顯示方式。 因此,此值是多餘的,但為了清楚起見而提供。 這個結構參考節點的其他成員會使用此索引空間。

NodeIOKind

指定輸入類別的 D3D12DDI_NODE_IO_KIND_0108 列舉。 請參閱 節點輸出宣告。

NodeIOFlags

旗標,提供節點輸出的其他資訊。 請參閱 D3D12DDI_NODE_IO_FLAGS_0108D3D12DDI_NODE_IO_FLAGS_FLAG_MASK 內的旗標。 請參閱 節點輸入宣告

RecordSizeInBytes

輸出記錄的大小,以位元組為單位。 如果 nodeIOKind D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108,可以是 0。

bAllowSparseNodes

布爾值,指定是否允許疏鬆節點。 此成員會對應至節點輸出上的 AllowSparseNodes 屬性,或可在應用層級覆寫,因此此處會指出最終狀態。

pRecordDispatchGrid

如果 nullptr,則輸出記錄不包含 SV_DispatchGrid。 否則,會指向輸出記錄中顯示 SV_DispatchGrid 方式的描述。 請參閱 D3D12DDI_RECORD_DISPATCH_GRID_0108

pMaxRecords

線程群組將輸出到此輸出節點/陣列的輸出記錄數目上限。 如果此輸出的輸出記錄預算與其他輸出共用,pMaxRecordsnullptr並改為指定 pMaxRecordsSharedWithOutputIndex。 如果著色器宣告 [MaxRecordsSharedWith()],則使用 pMaxRecords 覆寫它是有效的,這使得輸出預算不再共用。

pMaxRecordsSharedWithOutputIndex

如果此輸出與另一個輸出共用其輸出記錄預算,pMaxRecordsSharedWithOutputIndex 會根據宣告的順序指向該輸出的 0 型索引,以及它們如何出現在 D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108中的 pOutputs 陣列中,D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108、 與 D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108。 所指向的輸出 pMaxRecords 指定。 如果目前的輸出未共享其輸出記錄預算,pMaxRecordsSharedWithIndexnullptr。 如果著色器宣告 [MaxRecords()],則使用 pMaxRecordsSharedWithIndex 來覆寫它,這會使輸出預算現在與其他輸出共用。

ArraySize

要輸出至之節點陣列中的節點數目。 如果這是 1,則輸出是單一節點。 如果此值大於 1,則輸出是節點陣列。 節點在陣列中是連續的,而第一個節點是由 FinalName所指定的節點。 0xffffffff 值表示未系結的節點數位大小,只有在 bAllowSparseNodes 為 true 時,才允許此大小。

pOutputs

列出這個節點所輸出的節點(D3D12DDI_NODE_LIST_ENTRYD3D12DDI_NODE_0108)。 如果 pOutputsnullptr 此節點不會輸出至其他節點。 如果 bAllowSparseNodes 為 true,則只要 ArraySize,此列表就不一定是 。 不論 bAllowSparseNodes 狀態為何,驅動程式都不應該假設列表專案是以陣列索引順序排列。 指定輸出的陣列索引可以在其節點識別碼中找到。 AddToStateObject() 新增輸出時,新增專案會出現在清單開頭,這也是不假設它們是陣列索引順序的另一個原因。

言論

如需詳細資訊,請參閱 Work graph

要求

要求 價值
最低支援的用戶端 Windows 11 版本 24H2 (WDDM 3.2)
標頭 d3d12umddi.h

另請參閱

D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108