Bagikan melalui


struktur D3D11_TRACE_STATS (d3d11shadertracing.h)

Menentukan statistik tentang jejak.

Sintaks

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;

Anggota

TraceDesc

Struktur D3D11_SHADER_TRACE_DESC yang menjelaskan objek pelacakan shader yang strukturnya menentukan statistik.

NumInvocationsInStamp

Jumlah panggilan di stempel untuk pelacakan. Nilai ini selalu 1 untuk shader vertex, shader lambung, shader domain, shader geometri, dan shader komputasi. Nilai ini adalah 4 untuk shader piksel.

TargetStampIndex

Indeks stempel target. Nilai ini selalu 0 untuk shader vertex, shader lambung, shader domain, shader geometri, dan shader komputasi. Namun, untuk shader piksel, nilai ini menunjukkan mana dari empat piksel dalam stempel yang merupakan target untuk pelacakan. Anda dapat memeriksa jejak untuk piksel lain dalam stempel untuk menentukan bagaimana perhitungan turunan terjadi. Anda dapat membuat penentuan ini dengan menghubungkan register di seluruh jejak.

NumTraceSteps

Jumlah total langkah untuk pelacakan. Nomor ini sama untuk semua panggilan stempel.

InputMask[32]

Masker pelacakan komponen untuk setiap input v# register. Untuk informasi tentang D3D11_TRACE_COMPONENT_MASK, lihat D3D11_TRACE_VALUE.

Untuk shader vertex, shader geometri, shader piksel, shader lambung, dan shader domain, rentang yang valid adalah [0..31]. Untuk shader komputasi, anggota ini tidak berlaku. Selain itu, input untuk shader geometri diindeks 2D. Misalnya, pertimbangkan v[vertex][attribute]. Dalam contoh ini, rentang [atribut] adalah [0..31]. Sumbu [vertex] berukuran sama untuk semua input, yang ditentukan oleh anggota GSInputPrimitive .

Demikian pula, input untuk shader lambung dan shader domain diindeks 2D. Misalnya, pertimbangkan v[vertex][attribute]. Dalam contoh ini, rentang [atribut] adalah [0..15]. Sumbu [vertex] berukuran sama untuk semua input.

OutputMask[32]

Masker pelacakan komponen untuk setiap output o# register. Untuk informasi tentang D3D11_TRACE_COMPONENT_MASK, lihat D3D11_TRACE_VALUE.

Untuk shader vertex dan shader geometri, rentang yang valid adalah [0..31]. Untuk shader piksel, rentang yang valid adalah [0..7]. Untuk shader komputasi, anggota ini tidak berlaku. Untuk titik kontrol output untuk shader lambung, register diindeks 2D. Misalnya, pertimbangkan ocp[vertex][attribute]. Dalam contoh ini, rentang [atribut] adalah [0..31]. Sumbu [vertex] berukuran sama untuk semua input.

NumTemps

Jumlah temp, yaitu, 4x32 bit r# register yang dideklarasikan.

MaxIndexableTempIndex

Indeks maksimum #+1 dari semua temp yang dapat diindeks x#[] yang dideklarasikan. Jika dinyatakan jarang (misalnya, x3[12] dan x200[30] saja), nilai ini adalah 201 (200+1).

IndexableTempSize[4096]

Jumlah sementara untuk setiap temp x#[numTemps] yang dapat diindeks. Anda hanya dapat memiliki temp hingga nilai di anggota MaxIndexableTempIndex .

ImmediateConstantBufferSize

Jumlah nilai 4x32 bit (jika ada) yang berada dalam buffer konstanta langsung.

PixelPosition[4]

PixelCoverageMask[4]

Catatan Anggota ini hanya untuk shader piksel, [stampIndex].
 
Masker yang menunjukkan sampel MSAA mana yang dicakup untuk setiap stempel. Cakupan ini terjadi sebelum operasi alfa-ke-cakupan, kedalaman, dan stensil dilakukan pada piksel. Untuk non-MSAA, periksa bit yang paling tidak signifikan (LSB). Masker ini bisa 0 untuk piksel yang hanya dijalankan untuk mendukung turunan untuk piksel tetangga.

PixelDiscardedMask[4]

Catatan Anggota ini hanya untuk shader piksel, [stampIndex].
 
Masker yang menunjukkan sampel yang dibuang. Jika shader piksel berjalan pada frekuensi piksel, "buang" akan menonaktifkan semua sampel. Jika semua sampel nonaktif, empat anggota masker berikut juga 0.

PixelCoverageMaskAfterShader[4]

Catatan Anggota ini hanya untuk shader piksel, [stampIndex].
 
Masker yang menunjukkan sampel MSAA yang tercakup. Untuk non-MSAA, periksa LSB.

PixelCoverageMaskAfterA2CSampleMask[4]

Catatan Anggota ini hanya untuk shader piksel, [stampIndex].
 
Masker yang menunjukkan sampel MSAA yang dicakup setelah alpha-to-coverage+sampleMask, tetapi sebelum kedalaman dan stensil. Untuk non-MSAA, periksa LSB.

PixelCoverageMaskAfterA2CSampleMaskDepth[4]

Catatan Anggota ini hanya untuk shader piksel, [stampIndex].
 
Masker yang menunjukkan sampel MSAA yang dicakup setelah alpha-to-coverage+sampleMask+depth, tetapi sebelum stensil. Untuk non-MSAA, periksa LSB.

PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]

Catatan Anggota ini hanya untuk shader piksel, [stampIndex].
 
Masker yang menunjukkan sampel MSAA yang tercakup setelah alpha-to-coverage+sampleMask+depth+stencil. Untuk non-MSAA, periksa LSB.

PSOutputsDepth

Nilai yang menentukan apakah jejak ini untuk shader piksel yang menghasilkan register oDepth. TRUE menunjukkan bahwa shader piksel menghasilkan register oDepth; jika tidak, FALSE.

PSOutputsMask

Nilai yang menentukan apakah jejak ini untuk shader piksel yang menghasilkan register oMask. TRUE menunjukkan bahwa shader piksel menghasilkan register oMask; jika tidak, FALSE.

GSInputPrimitive

Nilai yang diketik D3D11_TRACE_GS_INPUT_PRIMITIVE yang mengidentifikasi jenis primitif input shader geometri. Artinya, nilai ini mengidentifikasi: {titik, garis, segitiga, line_adj, triangle_adj} atau jumlah simpul: masing-masing 1, 2, 3, 4, atau 6. Misalnya, untuk baris, input v[][#] sebenarnya v[2][#]. Untuk shader vertex dan shader piksel, atur anggota ini ke D3D11_TRACE_GS_INPUT_PRIMITIVE_UNDEFINED.

GSInputsPrimitiveID

Nilai yang menentukan apakah jejak ini untuk shader geometri yang memasukkan register PrimitiveID. TRUE menunjukkan bahwa shader geometri memasukkan register PrimitiveID; jika tidak, FALSE.

HSOutputPatchConstantMask[32]

Catatan Anggota ini hanya untuk shader lambung.
 
Masker pelacakan komponen untuk output hull-shader. Untuk informasi tentang D3D11_TRACE_COMPONENT_MASK, lihat D3D11_TRACE_VALUE.

Nilai D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER tersedia melalui panggilan ke metode ID3D11ShaderTrace::GetInitialRegisterContents .

DSInputPatchConstantMask[32]

Catatan Anggota ini hanya untuk shader domain.
 
Masker pelacakan komponen untuk input domain-shader. Untuk informasi tentang D3D11_TRACE_COMPONENT_MASK, lihat D3D11_TRACE_VALUE.

Nilai berikut tersedia melalui panggilan ke metode ID3D11ShaderTrace::GetInitialRegisterContents :

Keterangan

API ini memerlukan Windows Software Development Kit (SDK) untuk Windows 8.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Header d3d11shadertracing.h

Lihat juga

ID3D11ShaderTrace::GetTraceStats

Struktur Shader