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_0108、D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108和 D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108pOutputs 数组中的显示方式。 因此,此值是冗余的,但为了清楚起见, 使用此索引空间的此结构引用节点的其他成员。
NodeIOKind
一个指定输入类的 D3D12DDI_NODE_IO_KIND_0108 枚举。 请参阅 节点输出声明。
NodeIOFlags
提供有关节点输出的其他信息的标志。 请参阅 D3D12DDI_NODE_IO_FLAGS_0108中 D3D12DDI_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