Partager via


structure D3D11_TRACE_STATS (d3d11shadertracing.h)

Spécifie des statistiques sur une trace.

Syntaxe

typedef struct D3D11_TRACE_STATS {
  D3D11_SHADER_TRACE_DESC        TraceDesc;
  UINT8                          NumInvocationsInStamp;
  UINT8                          TargetStampIndex;
  UINT                           NumTraceSteps;
  D3D11_TRACE_COMPONENT_MASK     InputMask[32];
  D3D11_TRACE_COMPONENT_MASK     OutputMask[32];
  UINT16                         NumTemps;
  UINT16                         MaxIndexableTempIndex;
  UINT16                         IndexableTempSize[4096];
  UINT16                         ImmediateConstantBufferSize;
  UINT                           PixelPosition[4][2];
  UINT64                         PixelCoverageMask[4];
  UINT64                         PixelDiscardedMask[4];
  UINT64                         PixelCoverageMaskAfterShader[4];
  UINT64                         PixelCoverageMaskAfterA2CSampleMask[4];
  UINT64                         PixelCoverageMaskAfterA2CSampleMaskDepth[4];
  UINT64                         PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4];
  BOOL                           PSOutputsDepth;
  BOOL                           PSOutputsMask;
  D3D11_TRACE_GS_INPUT_PRIMITIVE GSInputPrimitive;
  BOOL                           GSInputsPrimitiveID;
  D3D11_TRACE_COMPONENT_MASK     HSOutputPatchConstantMask[32];
  D3D11_TRACE_COMPONENT_MASK     DSInputPatchConstantMask[32];
} D3D11_TRACE_STATS;

Membres

TraceDesc

Structure D3D11_SHADER_TRACE_DESC qui décrit l’objet de trace du nuanceur pour lequel cette structure spécifie des statistiques.

NumInvocationsInStamp

Nombre d’appels dans le tampon de la trace. Cette valeur est toujours 1 pour les nuanceurs de vertex, les nuanceurs de coque, les nuanceurs de domaine, les nuanceurs de géométrie et les nuanceurs de calcul. Cette valeur est 4 pour les nuanceurs de pixels.

TargetStampIndex

Index de l’empreinte cible. Cette valeur est toujours 0 pour les nuanceurs de vertex, les nuanceurs de coque, les nuanceurs de domaine, les nuanceurs de géométrie et les nuanceurs de calcul. Toutefois, pour les nuanceurs de pixels, cette valeur indique lequel des quatre pixels de l’empreinte est la cible de la trace. Vous pouvez examiner les traces d’autres pixels dans l’empreinte pour déterminer comment les calculs dérivés se sont produits. Vous pouvez effectuer cette détermination en corrélatant les registres entre les traces.

NumTraceSteps

Nombre total d’étapes pour la trace. Ce numéro est le même pour tous les appels d’empreinte.

InputMask[32]

Masque de trace de composant pour chaque registre v# d’entrée. Pour plus d’informations sur D3D11_TRACE_COMPONENT_MASK, consultez D3D11_TRACE_VALUE.

Pour les nuanceurs de vertex, les nuanceurs de géométrie, les nuanceurs de pixels, les nuanceurs de coque et les nuanceurs de domaine, la plage valide est [0..31]. Pour les nuanceurs de calcul, ce membre n’est pas applicable. En outre, les entrées pour les nuanceurs de géométrie sont indexées en 2D. Par exemple, considérez v[vertex][attribut]. Dans cet exemple, la plage de [attribute] est [0..31]. L’axe [vertex] est de la même taille pour toutes les entrées, qui sont déterminées par le membre GSInputPrimitive .

De même, les entrées pour le nuanceur de coque et le nuanceur de domaine sont indexées en 2D. Par exemple, considérez v[vertex][attribut]. Dans cet exemple, la plage de [attribute] est [0..15]. L’axe [vertex] est de la même taille pour toutes les entrées.

OutputMask[32]

Masque de trace de composant pour chaque registre o# de sortie. Pour plus d’informations sur D3D11_TRACE_COMPONENT_MASK, consultez D3D11_TRACE_VALUE.

Pour les nuanceurs de vertex et les nuanceurs de géométrie, la plage valide est [0..31]. Pour les nuanceurs de pixels, la plage valide est [0..7]. Pour les nuanceurs de calcul, ce membre n’est pas applicable. Pour les points de contrôle de sortie pour les nuanceurs de coque, les registres sont indexés en 2D. Par exemple, considérez ocp[vertex][attribut]. Dans cet exemple, la plage de [attribute] est [0..31]. L’axe [vertex] est de la même taille pour toutes les entrées.

NumTemps

Nombre de temps, c’est-à-dire de registres r# 4x32 bits déclarés.

MaxIndexableTempIndex

Index maximal #+1 de tous les temps indexables x#[] déclarés. S’ils sont déclarés partiellement (par exemple, x3[12] et x200[30] uniquement), cette valeur est 201 (200+1).

IndexableTempSize[4096]

Nombre de temps pour chaque temp indexable x#[numTemps]. Vous pouvez uniquement avoir des temps jusqu’à la valeur dans le membre MaxIndexableTempIndex .

ImmediateConstantBufferSize

Nombre de valeurs 4x32 bits (le cas échéant) qui se trouvent dans la mémoire tampon constante immédiate.

PixelPosition[4]

PixelCoverageMask[4]

Note Ce membre est uniquement destiné aux nuanceurs de pixels, [stampIndex].
 
Masque qui indique les exemples MSAA couverts pour chaque empreinte. Cette couverture se produit avant que les opérations alpha-à-couverture, de profondeur et de gabarit ne soient effectuées sur le pixel. Pour les non-MSAA, examinez le bit le moins significatif (LSB). Ce masque peut être 0 pour les pixels qui sont exécutés uniquement pour prendre en charge les dérivés des pixels voisins.

PixelDiscardedMask[4]

Note Ce membre est uniquement destiné aux nuanceurs de pixels, [stampIndex].
 
Masque qui indique les exemples ignorés. Si le nuanceur de pixels s’exécute à la fréquence des pixels, « ignorer » désactive tous les exemples. Si tous les exemples sont désactivés, les quatre membres de masque suivants sont également 0.

PixelCoverageMaskAfterShader[4]

Note Ce membre est uniquement destiné aux nuanceurs de pixels, [stampIndex].
 
Masque qui indique les exemples MSAA couverts. Pour les non-MSAA, examinez le LSB.

PixelCoverageMaskAfterA2CSampleMask[4]

Note Ce membre est uniquement destiné aux nuanceurs de pixels, [stampIndex].
 
Masque qui indique les exemples MSAA couverts après alpha-to-coverage+sampleMask, mais avant la profondeur et le gabarit. Pour les non-MSAA, examinez le LSB.

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

Note Ce membre est uniquement destiné aux nuanceurs de pixels, [stampIndex].
 
Masque qui indique les exemples MSAA couverts après alpha-to-coverage+sampleMask+depth, mais avant le gabarit. Pour les non-MSAA, examinez le LSB.

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

Note Ce membre est uniquement destiné aux nuanceurs de pixels, [stampIndex].
 
Masque qui indique les exemples MSAA couverts après alpha-to-coverage+sampleMask+depth+stencil. Pour les non-MSAA, examinez le LSB.

PSOutputsDepth

Valeur qui spécifie si cette trace concerne un nuanceur de pixels qui génère le registre oDepth. TRUE indique que le nuanceur de pixels génère le registre oDepth ; sinon, FALSE.

PSOutputsMask

Valeur qui spécifie si cette trace concerne un nuanceur de pixels qui génère le registre oMask. TRUE indique que le nuanceur de pixels génère le registre oMask ; sinon, FALSE.

GSInputPrimitive

Valeur de type D3D11_TRACE_GS_INPUT_PRIMITIVE qui identifie le type de primitive d’entrée du nuanceur geometry. Autrement dit, cette valeur identifie : {point, ligne, triangle, line_adj, triangle_adj} ou le nombre de sommets : 1, 2, 3, 4 ou 6 respectivement. Par exemple, pour une ligne, l’entrée v[][#] est en fait v[2][#]. Pour les nuanceurs de vertex et les nuanceurs de pixels, définissez ce membre sur D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED.

GSInputsPrimitiveID

Valeur qui spécifie si cette trace concerne un nuanceur de géométrie qui entre le registre PrimitiveID. TRUE indique que le nuanceur geometry entre le registre PrimitiveID ; sinon, FALSE.

HSOutputPatchConstantMask[32]

Note Ce membre est pour les nuanceurs de coque uniquement.
 
Masque de trace de composant pour la sortie hull-shader. Pour plus d’informations sur D3D11_TRACE_COMPONENT_MASK, consultez D3D11_TRACE_VALUE.

La valeur D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER est disponible via un appel à la méthode ID3D11ShaderTrace ::GetInitialRegisterContents .

DSInputPatchConstantMask[32]

Note Ce membre s’adresse uniquement aux nuanceurs de domaine.
 
Masque de trace de composant pour l’entrée du nuanceur de domaine. Pour plus d’informations sur D3D11_TRACE_COMPONENT_MASK, consultez D3D11_TRACE_VALUE.

Les valeurs suivantes sont disponibles via un appel à la méthode ID3D11ShaderTrace ::GetInitialRegisterContents :

Remarques

Cette API nécessite le Kit de développement logiciel (SDK) Windows pour Windows 8.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
En-tête d3d11shadertracing.h

Voir aussi

ID3D11ShaderTrace ::GetTraceStats

Structures de nuanceur