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_0108 D3D12DDI_NODE_IO_FLAGS_FLAG_MASK 中的 标志。 另请参阅 节点输入声明

RecordSizeInBytes

输出记录的大小(以字节为单位)。 如果D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108 NodeIOKind,可以为 0。

bAllowSparseNodes

指定是否允许稀疏节点的布尔值。 此成员映射到节点输出上的 AllowSparseNodes 属性 ,也可以在应用程序级别重写,因此此处指示最终状态。

pRecordDispatchGrid

如果 nullptr为 ,则输出记录不包含 SV_DispatchGrid。 否则,指向输出记录中 如何显示SV_DispatchGrid 的说明。 请参阅 D3D12DDI_RECORD_DISPATCH_GRID_0108

pMaxRecords

线程组将输出到此输出节点/数组的最大输出记录数。 如果此输出的输出记录预算与其他输出共享, 则 pMaxRecordsnullptr ,而是指定 pMaxRecordsSharedWithOutputIndex 。 如果着色器声明 了 [MaxRecordsSharedWith () ],则使用 pMaxRecords 替代它是有效的,这会使输出预算不再共享。

pMaxRecordsSharedWithOutputIndex

如果此输出与其他输出共享其输出记录预算,pMaxRecordsSharedWithOutputIndex 会根据声明输出的顺序以及它们在 D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108、D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108 中的 pOutputs 数组中的显示方式指向该输出的从 0 开始索引。 所指向的输出指定了 pMaxRecords 。 如果当前输出不共享其输出记录预算, pMaxRecordsSharedWithIndexnullptr。 如果着色器声明了 [MaxRecords () ],则使用 pMaxRecordsSharedWithIndex 重写它是有效的,这使得输出预算现在与另一个输出共享。

ArraySize

输出到的节点数组中的节点数。 如果为 1,则输出为单个节点。 如果此值大于 1,则输出是节点数组。 节点在数组中是连续的,第一个节点是由 FinalName 指定的节点。 值 0xffffffff 表示未绑定的节点数组大小,仅当 bAllowSparseNodes 为 true 时,才允许该大小。

pOutputs

列出 ( ( D3D12DDI_NODE_0108) 此节点输出 到的节点 D3D12DDI_NODE_LIST_ENTRY) 。 如果 pOutputs 为 , nullptr 则此节点不会输出到其他节点。 如果 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