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]
PixelDiscardedMask[4]
PixelCoverageMaskAfterShader[4]
PixelCoverageMaskAfterA2CSampleMask[4]
PixelCoverageMaskAfterA2CSampleMaskDepth[4]
PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]
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]
Der D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER-Wert ist über einen Aufruf der ID3D11ShaderTrace::GetInitialRegisterContents-Methode verfügbar.
DSInputPatchConstantMask[32]
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 |