structure D3D12DDI_NODE_OUTPUT_0108 (d3d12umddi.h)
La structure D3D12DDI_NODE_OUTPUT_0108 décrit la sortie d’un nœud dans un graphe de travail.
Syntaxe
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;
Membres
FinalName
Structure D3D12DDI_NODE_ID_0108 qui spécifie le nom final du nœud après tous les renommages facultatifs effectués au niveau de l’application. Si ArraySize est supérieur à 1, il s’agit de l’ID de nœud du début du tableau de nœuds vers lequel la sortie est effectuée.
OutputIndex
Index de base zéro de cette sortie dans l’ensemble de sorties pour ce nœud (la sortie du tableau de nœuds compte comme une entrée dans cet ensemble). Cet index correspond à l’ordre dans lequel les sorties sont déclarées et comment elles apparaissent dans les tableaux pOutputs dans D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108et D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. Par conséquent, cette valeur est redondante, mais elle est fournie pour plus de clarté. D’autres membres de cette structure référencent les nœuds à l’aide de cet espace d’indexation.
NodeIOKind
Énumération D3D12DDI_NODE_IO_KIND_0108 qui spécifie la classe d’entrée. Consultez déclaration de sortie node.
NodeIOFlags
Indicateurs qui fournissent des informations supplémentaires sur la sortie du nœud. Consultez les indicateurs dans D3D12DDI_NODE_IO_FLAGS_FLAG_MASK dans D3D12DDI_NODE_IO_FLAGS_0108. Consultez également déclaration d’entrée de nœud.
RecordSizeInBytes
Taille de l’enregistrement de sortie, en octets. Peut être 0 si NodeIOKind est D3D12DDI_NODE_IO_KIND_EMPTY_OUTPUT_0108.
bAllowSparseNodes
Boolean qui spécifie si les nœuds éparses sont autorisés. Ce membre est mappé à l’attribut AllowSparseNodes sur une sortie de nœud ou peut être substitué au niveau de l’application. Par conséquent, l’état final est indiqué ici.
pRecordDispatchGrid
Si nullptr
, l’enregistrement de sortie ne contient pas SV_DispatchGrid. Sinon, pointe vers une description de la façon dont SV_DispatchGrid apparaît dans l’enregistrement de sortie. Voir D3D12DDI_RECORD_DISPATCH_GRID_0108.
pMaxRecords
Nombre maximal d’enregistrements de sortie qu’un groupe de threads génère vers ce nœud/tableau de sortie. Si le budget d’enregistrement de sortie de cette sortie est partagé avec une autre sortie, pMaxRecords est nullptr
et pMaxRecordsSharedWithOutputIndex est spécifié à la place. Si le nuanceur a déclaré [MaxRecordsSharedWith()], il est valide de le remplacer par pMaxRecords, ce qui rend le budget de sortie plus partagé.
pMaxRecordsSharedWithOutputIndex
Si cette sortie partage son budget d’enregistrement de sortie avec une autre sortie, pMaxRecordsSharedWithOutputIndex pointe vers l’index basé sur 0 de cette sortie en fonction de l’ordre qu’ils sont déclarés et comment ils apparaissent dans les tableaux pOutputs dans D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108, D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108, , et D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. La sortie pointée vers laquelle pMaxRecords spécifié. Si la sortie actuelle ne partage pas son budget d’enregistrement de sortie, pMaxRecordsSharedWithIndex est nullptr
. Si le nuanceur déclaré [MaxRecords()], il est valide de le remplacer par pMaxRecordsSharedWithIndex, ce qui rend le budget de sortie désormais partagé avec une autre sortie.
ArraySize
Nombre de nœuds dans le tableau de nœuds vers lequel la sortie est effectuée. S’il s’agit de 1, la sortie est un nœud unique. Si cette valeur est supérieure à 1, la sortie est un tableau de nœuds. Les nœuds sont contigus dans le tableau et le premier nœud est celui spécifié par FinalName. Une valeur de 0xffffffff
signifie que la taille du tableau de nœuds non délimitée est autorisée uniquement lorsque bAllowSparseNodes a la valeur true.
pOutputs
Liste (D3D12DDI_NODE_LIST_ENTRY) des nœuds (D3D12DDI_NODE_0108) vers lesquels ce nœud est généré. Si pOutputs est nullptr
ce nœud ne génère pas de sortie vers d’autres nœuds. Si bAllowSparseNodes a la valeur true, cette liste n’est pas nécessairement aussi longue que ArraySize. Indépendamment de bAllowSparseNodes'état, les pilotes ne doivent pas supposer que les entrées de liste sont dans l’ordre d’index du tableau. L’index de tableau d’une sortie donnée se trouve dans son ID de nœud. Lorsque AddToStateObject() ajoute des sorties, les ajouts s’affichent au début de la liste, ce qui est une autre raison de ne pas supposer qu’ils sont l’ordre d’index du tableau.
Remarques
Pour plus d’informations, consultez graphiques Work.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 11, version 24H2 (WDDM 3.2) |
d’en-tête | d3d12umddi.h |
Voir aussi
D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108