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]
PixelDiscardedMask[4]
PixelCoverageMaskAfterShader[4]
PixelCoverageMaskAfterA2CSampleMask[4]
PixelCoverageMaskAfterA2CSampleMaskDepth[4]
PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]
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]
La valeur D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER est disponible via un appel à la méthode ID3D11ShaderTrace ::GetInitialRegisterContents .
DSInputPatchConstantMask[32]
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 |