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_0108pOutputs 数组中的显示方式。 因此,此值是冗余的,但为了清楚起见, 使用此索引空间的此结构引用节点的其他成员。

NodeIOKind

一个指定输入类的 D3D12DDI_NODE_IO_KIND_0108 枚举。 请参阅 节点输出声明

NodeIOFlags

提供有关节点输出的其他信息的标志。 请参阅 D3D12DDI_NODE_IO_FLAGS_0108D3D12DDI_NODE_IO_FLAGS_FLAG_MASK 中的标志。 另请参阅 节点输入声明

RecordSizeInBytes

输出记录的大小(以字节为单位)。 如果 NodeIOKindD3D12DDI_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_0108)(D3D12DDI_NODE_LIST_ENTRY)。 如果 pOutputsnullptr 此节点不会输出到其他节点。 如果 bAllowSparseNodes 为 true,则此列表不一定 ArraySize。 无论 bAllowSparseNodes 状态如何,驱动程序都不应假定列表项按数组索引顺序排列。 可以在给定输出的数组索引中找到其节点 ID。 当 AddToStateObject() 添加输出时,添加项将显示在列表的开头,这是不假定它们是数组索引顺序的另一个原因。

言论

有关详细信息,请参阅 工作图

要求

要求 价值
最低支持的客户端 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