estructura D3D12DDI_NODE_OUTPUT_0108 (d3d12umddi.h)
La estructura D3D12DDI_NODE_OUTPUT_0108 describe la salida de un nodo en un gráfico de trabajo.
Sintaxis
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;
Miembros
FinalName
Estructura de D3D12DDI_NODE_ID_0108 que especifica el nombre final del nodo después de realizar cualquier cambio de nombre opcional en el nivel de aplicación. Si ArraySize es mayor que 1, este es el NodeID del principio de la matriz de nodos a la que se va a generar.
OutputIndex
Índice de base cero de esta salida en el conjunto de salidas de este nodo (la salida de la matriz de nodos cuenta como una entrada de este conjunto). Este índice coincide con el orden en que se declaran las salidas y cómo aparecen en las matrices pOutputs de D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108 y D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. Por lo tanto, este valor es redundante, pero se proporciona para mayor claridad. Otros miembros de esta estructura hacen referencia a nodos mediante este espacio de indexación.
NodeIOKind
Enumeración D3D12DDI_NODE_IO_KIND_0108 que especifica la clase de entrada. Consulte Declaración de salida de nodo.
NodeIOFlags
Marcas que proporcionan información adicional sobre la salida del nodo. Consulte las marcas de D3D12DDI_NODE_IO_FLAGS_FLAG_MASK en D3D12DDI_NODE_IO_FLAGS_0108. Consulte también Declaración de entrada de nodo.
RecordSizeInBytes
Tamaño del registro de salida, en bytes. Puede ser 0 si NodeIOKind está D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108.
bAllowSparseNodes
Valor booleano que especifica si se permiten nodos dispersos. Este miembro se asigna al atributo AllowSparseNodes en una salida de nodo o se puede invalidar en el nivel de aplicación, por lo que el estado final se indica aquí.
pRecordDispatchGrid
Si nullptr
es , el registro de salida no contiene SV_DispatchGrid. De lo contrario, apunta a una descripción de cómo aparece SV_DispatchGrid en el registro de salida. Consulte D3D12DDI_RECORD_DISPATCH_GRID_0108.
pMaxRecords
Número máximo de registros de salida que un grupo de subprocesos generará en este nodo o matriz de salida. Si el presupuesto del registro de salida de esta salida se comparte con otra salida, pMaxRecords es nullptr
y pMaxRecordsSharedWithOutputIndex se especifica en su lugar. Si el sombreador declaró [MaxRecordsSharedWith()], es válido invalidarlo con pMaxRecords, lo que hace que el presupuesto de salida ya no se comparta.
pMaxRecordsSharedWithOutputIndex
Si esta salida comparte su presupuesto de registros de salida con otra salida, pMaxRecordsSharedWithOutputIndex apunta al índice basado en 0 de esa salida en función del orden en que se declaran y cómo aparecen en las matrices pOutputs de D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108 y D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. La salida a la que se apunta tiene especificados pMaxRecords . Si la salida actual no comparte su presupuesto de registros de salida, pMaxRecordsSharedWithIndex es nullptr
. Si el sombreador declarado [MaxRecords()], es válido invalidarlo con pMaxRecordsSharedWithIndex, lo que hace que el presupuesto de salida ahora se comparta con otra salida.
ArraySize
Número de nodos de la matriz de nodos a los que se va a generar. Si es 1, la salida es un único nodo. Si es mayor que 1, la salida es una matriz de nodos. Los nodos son contiguos en la matriz y el primer nodo es el especificado por FinalName. Un valor de significa tamaño de 0xffffffff
matriz de nodo sin enlazar, que solo se permite cuando bAllowSparseNodes es true.
pOutputs
Enumera (D3D12DDI_NODE_LIST_ENTRY) de nodos (D3D12DDI_NODE_0108) en los que este nodo genera. Si pOutputs es nullptr
este nodo no genera resultados en otros nodos. Si bAllowSparseNodes es true, esta lista no es necesariamente siempre que ArraySize. Independientemente del estado bAllowSparseNodes , los controladores no deben suponer que las entradas de lista están en orden de índice de matriz. El índice de matriz de una salida determinada se puede encontrar en su identificador de nodo. Cuando AddToStateObject() agrega salidas, las adiciones aparecerán al principio de la lista, que es otra razón para no suponer que son el orden del índice de matriz.
Comentarios
Para obtener más información, consulte Gráficos de trabajo.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 11, versión 24H2 (WDDM 3.2) |
Encabezado | d3d12umddi.h |
Consulte también
D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108