D3D12DDI_NODE_OUTPUT_0108 structure (d3d12umddi.h)
La structure D3D12DDI_NODE_OUTPUT_0108 décrit la sortie d’un nœud dans un graphique 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
Une 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_0108 et D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108. En tant que telle, cette valeur est redondante, mais fournie pour des motifs de clarté. D’autres membres de cette structure référencent des 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 de nœud.
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. Voir aussi 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 épars sont autorisés. Ce membre est mappé à l’attribut AllowSparseNodes sur une sortie de nœud, ou peut être remplacé au niveau de l’application, de sorte que la status finale est indiquée ici.
pRecordDispatchGrid
Si nullptr
la valeur est , 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 pour 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 non partagé.
pMaxRecordsSharedWithOutputIndex
Si cette sortie partage son budget d’enregistrement de sortie avec une autre sortie, pMaxRecordsSharedWithOutputIndex pointe vers l’index de base 0 de cette sortie en fonction de l’ordre dans lequel elles sont déclarées et de la façon dont elles 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 vers laquelle est pointé pMaxRecords est spécifié. Si la sortie actuelle ne partage pas son budget d’enregistrement de sortie, pMaxRecordsSharedWithIndex est nullptr
. Si le nuanceur a 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. La valeur signifie la taille de 0xffffffff
tableau de nœuds non délimitée, qui n’est autorisée que 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. Quel que soit l’état bAllowSparseNodes , 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 constitue une autre raison de ne pas supposer qu’il s’agit d’un ordre d’index de tableau.
Remarques
Pour plus d’informations, consultez Graphiques de travail.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 11, version 24H2 (WDDM 3.2) |
En-tête | d3d12umddi.h |
Voir aussi
D3D12DDI_BROADCASTING_LAUNCH_NODE_PROPERTIES_0108