D3D11_TRACE_STATS-Struktur (d3d11shadertracing.h)

Gibt Statistiken zu einer Ablaufverfolgung an.

Syntax

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;

Member

TraceDesc

Eine D3D11_SHADER_TRACE_DESC Struktur, die das Shaderablaufverfolgungsobjekt beschreibt, für das diese Struktur Statistiken angibt.

NumInvocationsInStamp

Die Anzahl der Aufrufe im Stempel für die Ablaufverfolgung. Dieser Wert ist für Vertex-Shader, Hull-Shader, Domänenshader, Geometrie-Shader und Compute-Shader immer 1. Dieser Wert ist 4 für Pixel-Shader.

TargetStampIndex

Der Index des Zielstempels. Dieser Wert ist für Vertex-Shader, Hull-Shader, Domänenshader, Geometrie-Shader und Compute-Shader immer 0. Für Pixel-Shader gibt dieser Wert jedoch an, welcher der vier Pixel im Stempel das Ziel für die Ablaufverfolgung ist. Sie können die Ablaufverfolgungen für andere Pixel im Stempel untersuchen, um zu bestimmen, wie abgeleitete Berechnungen aufgetreten sind. Sie können diese Feststellung treffen, indem Sie die Register über Ablaufverfolgungen hinweg korrelieren.

NumTraceSteps

Die Gesamtanzahl der Schritte für die Ablaufverfolgung. Diese Nummer ist für alle Stempelaufrufe identisch.

InputMask[32]

Die Komponentenablaufverfolgungsmaske für jedes Eingabe-v#-Register. Informationen zu D3D11_TRACE_COMPONENT_MASK finden Sie unter D3D11_TRACE_VALUE.

Für Vertex-Shader, Geometrie-Shader, Pixel-Shader, Hull-Shader und Domänenshader ist der gültige Bereich [0..31]. Für Compute-Shader ist dieser Member nicht anwendbar. Außerdem sind Eingaben für Geometrie-Shader 2D-indiziert. Betrachten Sie beispielsweise v[vertex][Attribut]. In diesem Beispiel ist der Bereich von [Attribut] [0..31]. Die [Vertex]-Achse hat die gleiche Größe für alle Eingaben, die durch das GSInputPrimitive-Element bestimmt werden.

Ebenso sind Eingaben für Hull-Shader und Domänenshader 2D-indiziert. Betrachten Sie beispielsweise v[vertex][Attribut]. In diesem Beispiel ist der Bereich von [Attribut] [0..15]. Die [Vertex]-Achse hat die gleiche Größe für alle Eingaben.

OutputMask[32]

Die Komponentenablaufverfolgungsmaske für jedes o#-Ausgaberegister. Informationen zu D3D11_TRACE_COMPONENT_MASK finden Sie unter D3D11_TRACE_VALUE.

Für Vertex-Shader und Geometrie-Shader ist der gültige Bereich [0..31]. Für Pixel-Shader ist der gültige Bereich [0..7]. Für Compute-Shader ist dieser Member nicht anwendbar. Für Ausgabesteuerungspunkte für Hull-Shader sind die Register 2D-indiziert. Betrachten Sie beispielsweise ocp[vertex][attribut]. In diesem Beispiel ist der Bereich von [Attribut] [0..31]. Die [Vertex]-Achse hat die gleiche Größe für alle Eingaben.

NumTemps

Die Anzahl der Temps, d. h. 4 x 32 Bit r#-Register, die deklariert werden.

MaxIndexableTempIndex

Der maximale Index #+1 aller indexierbaren Temps x#[], die deklariert werden. Wenn sie nur spärlich deklariert werden (z. B. nur x3[12] und x200[30] ), ist dieser Wert 201 (200+1).

IndexableTempSize[4096]

Die Anzahl der Temps für jede indizierbare temp x#[numTemps]. Sie können nur Temps bis zum Wert im MaxIndexableTempIndex-Member haben.

ImmediateConstantBufferSize

Die Anzahl der 4x32-Bitwerte (falls vorhanden), die sich im unmittelbaren konstanten Puffer befinden.

PixelPosition[4]

PixelCoverageMask[4]

Hinweis Dieses Element ist nur für Pixel-Shader vorgesehen, [stampIndex].
 
Eine Maske, die angibt, welche MSAA-Stichproben für jeden Stempel abgedeckt werden. Diese Abdeckung erfolgt, bevor Alpha-to-Coverage-, Tiefen- und Schablonenvorgänge für das Pixel ausgeführt werden. Untersuchen Sie bei Nicht-MSAA das geringste signifikante Bit (Least Significant Bit, LSB). Diese Maske kann 0 für Pixel sein, die nur ausgeführt werden, um Ableitungen für benachbarte Pixel zu unterstützen.

PixelDiscardedMask[4]

Hinweis Dieses Element ist nur für Pixel-Shader vorgesehen, [stampIndex].
 
Eine Maske, die verworfene Beispiele angibt. Wenn der Pixel-Shader mit Pixelfrequenz ausgeführt wird, deaktiviert "verwerfen" alle Beispiele. Wenn alle Beispiele deaktiviert sind, sind die folgenden vier Maskenmember ebenfalls 0.

PixelCoverageMaskAfterShader[4]

Hinweis Dieses Element ist nur für Pixel-Shader vorgesehen, [stampIndex].
 
Eine Maske, die die abgedeckten MSAA-Beispiele angibt. Untersuchen Sie bei Nicht-MSAA den LSB.

PixelCoverageMaskAfterA2CSampleMask[4]

Hinweis Dieses Element ist nur für Pixel-Shader vorgesehen, [stampIndex].
 
Eine Maske, die die MSAA-Beispiele angibt, die nach Alpha-to-Coverage+sampleMask, aber vor Tiefe und Schablone behandelt werden. Untersuchen Sie bei Nicht-MSAA den LSB.

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

Hinweis Dieses Element ist nur für Pixel-Shader vorgesehen, [stampIndex].
 
Eine Maske, die die MSAA-Beispiele angibt, die nach alpha-to-coverage+sampleMask+depth, aber vor der Schablone behandelt werden. Untersuchen Sie bei Nicht-MSAA den LSB.

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

Hinweis Dieses Element ist nur für Pixel-Shader vorgesehen, [stampIndex].
 
Eine Maske, die die MSAA-Beispiele angibt, die nach alpha-to-coverage+sampleMask+depth+stencil behandelt werden. Untersuchen Sie bei Nicht-MSAA den LSB.

PSOutputsDepth

Ein Wert, der angibt, ob diese Ablaufverfolgung für einen Pixel-Shader ist, der das oDepth-Register ausgibt. TRUE gibt an, dass der Pixel-Shader das oDepth-Register ausgibt. andernfalls FALSE.

PSOutputsMask

Ein Wert, der angibt, ob diese Ablaufverfolgung für einen Pixel-Shader ist, der das oMask-Register ausgibt. TRUE gibt an, dass der Pixel-Shader das oMask-Register ausgibt. andernfalls FALSE.

GSInputPrimitive

Ein D3D11_TRACE_GS_INPUT_PRIMITIVE typisierter Wert, der den Typ des Grundtyps der Geometrie-Shadereingabe angibt. Das heißt, dieser Wert identifiziert: {Punkt, Linie, Dreieck, line_adj, triangle_adj} oder die Anzahl der Scheitelpunkte: 1, 2, 3, 4 oder 6. Für eine Zeile ist beispielsweise die Eingabe v[][#] tatsächlich v[2][#]. Legen Sie für Vertex-Shader und Pixel-Shader dieses Element auf D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED fest.

GSInputsPrimitiveID

Ein Wert, der angibt, ob diese Ablaufverfolgung für einen Geometrie-Shader gilt, der das PrimitiveID-Register eingibt. TRUE gibt an, dass der Geometrie-Shader das PrimitiveID-Register eingibt. andernfalls FALSE.

HSOutputPatchConstantMask[32]

Hinweis Dieses Element ist nur für Rumpf-Shader vorgesehen.
 
Die Komponentenablaufverfolgungsmaske für die Hull-Shader-Ausgabe. Informationen zu D3D11_TRACE_COMPONENT_MASK finden Sie unter D3D11_TRACE_VALUE.

Der D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER-Wert ist über einen Aufruf der ID3D11ShaderTrace::GetInitialRegisterContents-Methode verfügbar.

DSInputPatchConstantMask[32]

Hinweis Dieses Element ist nur für Domänenshader vorgesehen.
 
Die Komponentenablaufverfolgungsmaske für die Domänen-Shader-Eingabe. Informationen zu D3D11_TRACE_COMPONENT_MASK finden Sie unter D3D11_TRACE_VALUE.

Die folgenden Werte sind über einen Aufruf der ID3D11ShaderTrace::GetInitialRegisterContents-Methode verfügbar:

Hinweise

Für diese API ist das Windows Software Development Kit (SDK) für Windows 8 erforderlich.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Kopfzeile d3d11shadertracing.h

Weitere Informationen

ID3D11ShaderTrace::GetTraceStats

Shader-Strukturen