Partager via


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

D3D12DDI_COALESCING_LAUNCH_NODE_PROPERTIES_0108

D3D12DDI_THREAD_LAUNCH_NODE_PROPERTIES_0108