D3D11_TRACE_STATS struttura (d3d11shadertracing.h)
Specifica le statistiche relative a una traccia.
Sintassi
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;
Members
TraceDesc
Struttura D3D11_SHADER_TRACE_DESC che descrive l'oggetto di traccia shader per cui questa struttura specifica le statistiche.
NumInvocationsInStamp
Numero di chiamate nel timbro per la traccia. Questo valore è sempre 1 per vertex shader, shader di scafo, shader di dominio, shader geometry e shader di calcolo. Questo valore è 4 per pixel shader.
TargetStampIndex
Indice del timbro di destinazione. Questo valore è sempre 0 per vertex shader, shader di scafo, shader di dominio, shader geometry e shader di calcolo. Tuttavia, per i pixel shader questo valore indica quale dei quattro pixel del timbro è la destinazione per la traccia. È possibile esaminare le tracce per altri pixel nel timbro per determinare il modo in cui si sono verificati i calcoli derivati. È possibile stabilire questa determinazione correlando i registri tra le tracce.
NumTraceSteps
Numero totale di passaggi per la traccia. Questo numero è lo stesso per tutte le chiamate di stamp.
InputMask[32]
Maschera di traccia del componente per ogni registro v# di input. Per informazioni sulle D3D11_TRACE_COMPONENT_MASK, vedere D3D11_TRACE_VALUE.
Per i vertex shader, gli shader geometria, gli shader pixel, gli shader dello scafo e gli shader di dominio, l'intervallo valido è [0..31]. Per gli shader di calcolo, questo membro non è applicabile. Inoltre, gli input per gli shader geometry sono indicizzati 2D. Si consideri ad esempio v[vertex][attributo]. In questo esempio l'intervallo di [attributo] è [0..31]. L'asse [vertice] è la stessa dimensione per tutti gli input, che vengono determinati dal membro GSInputPrimitive .
Analogamente, gli input per lo shader dello scafo e lo shader di dominio sono indicizzati 2D. Si consideri ad esempio v[vertex][attributo]. In questo esempio l'intervallo di [attributo] è [0..15]. L'asse [vertice] è la stessa dimensione per tutti gli input.
OutputMask[32]
Maschera di traccia del componente per ogni registro o# di output. Per informazioni sulle D3D11_TRACE_COMPONENT_MASK, vedere D3D11_TRACE_VALUE.
Per i vertex shader e gli shader geometry, l'intervallo valido è [0..31]. Per pixel shader, l'intervallo valido è [0..7]. Per gli shader di calcolo, questo membro non è applicabile. Per i punti di controllo di output per gli shader dello scafo, i registri sono indicizzati 2D. Si consideri ad esempio ocp[vertex][attribute]. In questo esempio l'intervallo di [attributo] è [0..31]. L'asse [vertice] è la stessa dimensione per tutti gli input.
NumTemps
Numero di temp, ovvero registri r# a 4x32 bit dichiarati.
MaxIndexableTempIndex
Indice massimo #+1 di tutti i temp indicizzati x#[] dichiarati. Se sono dichiarate sparse (ad esempio, x3[12] e x200[30] solo), questo valore è 201 (200+1).
IndexableTempSize[4096]
Numero di temp per ogni tempable temp x#[numTemps]. È possibile avere solo temps fino al valore nel membro MaxIndexableTempIndex .
ImmediateConstantBufferSize
Numero di valori a 4x32 bit (se presenti) presenti nel buffer costante immediato.
PixelPosition[4]
PixelCoverageMask[4]
PixelDiscardedMask[4]
PixelCoverageMaskAfterShader[4]
PixelCoverageMaskAfterA2CSampleMask[4]
PixelCoverageMaskAfterA2CSampleMaskDepth[4]
PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]
PSOutputsDepth
Valore che specifica se questa traccia è per un pixel shader che restituisce il registro oDepth. TRUE indica che il pixel shader restituisce il registro oDepth; in caso contrario, FALSE.
PSOutputsMask
Valore che specifica se questa traccia è per un pixel shader che restituisce il registro oMask. TRUE indica che il pixel shader restituisce il registro oMask; in caso contrario, FALSE.
GSInputPrimitive
Valore D3D11_TRACE_GS_INPUT_PRIMITIVE tipizzato che identifica il tipo di primitiva di input geometry shader. Questo valore identifica: {point, line, triangolo, line_adj, triangle_adj} o il numero di vertici: 1, 2, 3, 4 o 6 rispettivamente. Ad esempio, per una riga, input v[][#] è effettivamente v[2][#]. Per i vertex shader e pixel shader, impostare questo membro su D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED.
GSInputsPrimitiveID
Valore che specifica se questa traccia è per un shader geometry che inserisce il registro PrimitiveID. TRUE indica che lo shader geometry inserisce il registro PrimitiveID; in caso contrario, FALSE.
HSOutputPatchConstantMask[32]
Il valore D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER è disponibile tramite una chiamata al metodo ID3D11ShaderTrace::GetInitialRegisterContents .
DSInputPatchConstantMask[32]
I valori seguenti sono disponibili tramite una chiamata al metodo ID3D11ShaderTrace::GetInitialRegisterContents :
Commenti
Questa API richiede Windows Software Development Kit (SDK) per Windows 8.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 [solo app desktop] |
Server minimo supportato | Windows Server 2012 [solo app desktop] |
Intestazione | d3d11shadertracing.h |