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]
PixelDiscardedMask[4]
PixelCoverageMaskAfterShader[4]
PixelCoverageMaskAfterA2CSampleMask[4]
PixelCoverageMaskAfterA2CSampleMaskDepth[4]
PixelCoverageMaskAfterA2CSampleMaskDepthStencil[4]
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]
Nilai D3D11_TRACE_INPUT_PRIMITIVE_ID_REGISTER tersedia melalui panggilan ke metode ID3D11ShaderTrace::GetInitialRegisterContents .
DSInputPatchConstantMask[32]
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk