estrutura D3D11_TRACE_STATS (d3d11shadertracing.h)

Especifica estatísticas sobre um rastreamento.

Sintaxe

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;

Membros

TraceDesc

Uma estrutura D3D11_SHADER_TRACE_DESC que descreve o objeto de rastreamento do sombreador para o qual essa estrutura especifica estatísticas.

NumInvocationsInStamp

O número de chamadas no carimbo do rastreamento. Esse valor é sempre 1 para sombreadores de vértice, sombreadores de casco, sombreadores de domínio, sombreadores de geometria e sombreadores de computação. Esse valor é 4 para sombreadores de pixel.

TargetStampIndex

O índice do carimbo de destino. Esse valor é sempre 0 para sombreadores de vértice, sombreadores de casco, sombreadores de domínio, sombreadores de geometria e sombreadores de computação. No entanto, para sombreadores de pixel, esse valor indica qual dos quatro pixels no carimbo é o destino para o rastreamento. Você pode examinar os rastreamentos de outros pixels no selo para determinar como os cálculos derivados ocorreram. Você pode fazer essa determinação correlacionando os registros entre rastreamentos.

NumTraceSteps

O número total de etapas para o rastreamento. Esse número é o mesmo para todas as chamadas de selo.

InputMask[32]

A máscara de rastreamento de componente para cada registro v# de entrada. Para obter informações sobre D3D11_TRACE_COMPONENT_MASK, consulte D3D11_TRACE_VALUE.

Para sombreadores de vértice, sombreadores de geometria, sombreadores de pixel, sombreadores de casco e sombreadores de domínio, o intervalo válido é [0..31]. Para sombreadores de computação, esse membro não é aplicável. Além disso, as entradas para sombreadores de geometria são indexadas em 2D. Por exemplo, considere v[vértice][atributo]. Neste exemplo, o intervalo de [atributo] é [0..31]. O eixo [vértice] tem o mesmo tamanho para todas as entradas, que são determinadas pelo membro GSInputPrimitive .

Da mesma forma, as entradas para sombreador de casco e sombreador de domínio são indexadas em 2D. Por exemplo, considere v[vértice][atributo]. Neste exemplo, o intervalo de [atributo] é [0..15]. O eixo [vértice] tem o mesmo tamanho para todas as entradas.

OutputMask[32]

A máscara de rastreamento de componente para cada registro o# de saída. Para obter informações sobre D3D11_TRACE_COMPONENT_MASK, consulte D3D11_TRACE_VALUE.

Para sombreadores de vértice e sombreadores de geometria, o intervalo válido é [0..31]. Para sombreadores de pixel, o intervalo válido é [0..7]. Para sombreadores de computação, esse membro não é aplicável. Para pontos de controle de saída para sombreadores de casco, os registros são indexados em 2D. Por exemplo, considere ocp[vértice][atributo]. Neste exemplo, o intervalo de [atributo] é [0..31]. O eixo [vértice] tem o mesmo tamanho para todas as entradas.

NumTemps

O número de temporários, ou seja, registros r# de 4x32 bits declarados.

MaxIndexableTempIndex

O índice máximo #+1 de todos os temps indexáveis x#[] declarados. Se forem declarados de forma esparsa (por exemplo, somente x3[12] e x200[30]), esse valor será 201 (200+1).

IndexableTempSize[4096]

O número de temporários para cada temp indexável x#[numTemps]. Você só pode ter temps até o valor no membro MaxIndexableTempIndex .

ImmediateConstantBufferSize

O número de valores de 4x32 bits (se houver) que estão no buffer constante imediato.

PixelPosition[4]

PixelCoverageMask[4]

Nota Esse membro é somente para sombreadores de pixel, [stampIndex].
 
Uma máscara que indica quais exemplos de MSAA são cobertos para cada selo. Essa cobertura ocorre antes que as operações de estêncil, profundidade e estêncil sejam executadas no pixel. Para não MSAA, examine o bit menos significativo (LSB). Essa máscara pode ser 0 para pixels executados apenas para dar suporte a derivados para pixels vizinhos.

PixelDiscardedMask[4]

Nota Esse membro é somente para sombreadores de pixel, [stampIndex].
 
Uma máscara que indica amostras descartadas. Se o sombreador de pixel for executado em frequência de pixel, "descartar" desativa todos os exemplos. Se todos os exemplos estiverem desativados, os quatro membros de máscara a seguir também serão 0.

PixelCoverageMaskAfterShader[4]

Nota Esse membro é somente para sombreadores de pixel, [stampIndex].
 
Uma máscara que indica os exemplos de MSAA cobertos. Para não MSAA, examine o LSB.

PixelCoverageMaskAfterA2CSampleMask[4]

Nota Esse membro é somente para sombreadores de pixel, [stampIndex].
 
Uma máscara que indica os exemplos msaa que são cobertos após alpha-to-coverage+sampleMask, mas antes de profundidade e estêncil. Para não MSAA, examine o LSB.

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

Nota Esse membro é somente para sombreadores de pixel, [stampIndex].
 
Uma máscara que indica os exemplos de MSAA cobertos após alpha-to-coverage+sampleMask+depth, mas antes do estêncil. Para não MSAA, examine o LSB.

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

Nota Esse membro é somente para sombreadores de pixel, [stampIndex].
 
Uma máscara que indica os exemplos msaa que são cobertos após alpha-to-coverage+sampleMask+depth+estêncil. Para não MSAA, examine o LSB.

PSOutputsDepth

Um valor que especifica se esse rastreamento é para um sombreador de pixel que gera o registro oDepth. TRUE indica que o sombreador de pixel gera o registro oDepth; caso contrário, FALSE.

PSOutputsMask

Um valor que especifica se esse rastreamento é para um sombreador de pixel que gera o registro oMask. TRUE indica que o sombreador de pixel gera o registro oMask; caso contrário, FALSE.

GSInputPrimitive

Um valor de tipo D3D11_TRACE_GS_INPUT_PRIMITIVE que identifica o tipo de primitivo de entrada do sombreador de geometria. Ou seja, esse valor identifica: {point, line, triangle, line_adj, triangle_adj} ou o número de vértices: 1, 2, 3, 4 ou 6, respectivamente. Por exemplo, para uma linha, a entrada v[][#] é na verdade v[2][#]. Para sombreadores de vértice e sombreadores de pixel, defina esse membro como D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED.

GSInputsPrimitiveID

Um valor que especifica se esse rastreamento é para um sombreador de geometria que insere o registro PrimitiveID. TRUE indica que o sombreador de geometria insira o registro PrimitiveID; caso contrário, FALSE.

HSOutputPatchConstantMask[32]

Nota Este membro é apenas para sombreadores de casco.
 
A máscara de rastreamento de componente para a saída do sombreador de casco. Para obter informações sobre D3D11_TRACE_COMPONENT_MASK, consulte D3D11_TRACE_VALUE.

O valor D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER está disponível por meio de uma chamada para o método ID3D11ShaderTrace::GetInitialRegisterContents .

DSInputPatchConstantMask[32]

Nota Esse membro é apenas para sombreadores de domínio.
 
A máscara de rastreamento de componente para a entrada do sombreador de domínio. Para obter informações sobre D3D11_TRACE_COMPONENT_MASK, consulte D3D11_TRACE_VALUE.

Os seguintes valores estão disponíveis por meio de uma chamada para o método ID3D11ShaderTrace::GetInitialRegisterContents :

Comentários

Essa API requer o SDK (Software Development Kit) do Windows para Windows 8.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2012 [somente aplicativos da área de trabalho]
Cabeçalho d3d11shadertracing.h

Confira também

ID3D11ShaderTrace::GetTraceStats

Estruturas do sombreador