struktur D3D11_TRACE_STEP (d3d11shadertracing.h)
Menjelaskan langkah pelacakan, yang merupakan instruksi.
Sintaks
typedef struct D3D11_TRACE_STEP {
UINT ID;
BOOL InstructionActive;
UINT8 NumRegistersWritten;
UINT8 NumRegistersRead;
D3D11_TRACE_MISC_OPERATIONS_MASK MiscOperations;
UINT OpcodeType;
UINT64 CurrentGlobalCycle;
} D3D11_TRACE_STEP;
Anggota
ID
Angka yang mengidentifikasi instruksi, sebagai offset ke dalam instruksi yang dapat dieksekusi yang ada di shader.
Informasi penelusuran kesalahan HLSL menggunakan konvensi yang sama. Oleh karena itu, instruksi HLSL dicocokkan dengan satu set ID. Anda kemudian dapat memetakan ID ke string yang dibongkar yang dapat ditampilkan kepada pengguna.
InstructionActive
Nilai yang menentukan apakah instruksi aktif. Nilai ini TRUE jika terjadi sesuatu; oleh karena itu, Anda harus mengurai data lain dalam struktur ini. Jika tidak, tidak ada yang terjadi; misalnya, jika instruksi dinonaktifkan karena kontrol aliran meskipun piksel lain dalam stempel menjalankannya.
NumRegistersWritten
Jumlah register untuk instruksi yang ditulis. Rentang register adalah [0...NumRegistersWritten-1]. Anda dapat meneruskan nomor register ke parameter writeRegisterIndexID3D11ShaderTrace::GetWrittenRegister untuk mengambil informasi write-register individual.
NumRegistersRead
Jumlah register untuk instruksi yang dibaca. Rentang register adalah [0...NumRegistersRead-1]. Anda dapat meneruskan nomor register ke parameter readRegisterIndexID3D11ShaderTrace::GetReadRegister untuk mengambil informasi baca-daftar individual.
MiscOperations
Kombinasi nilai berikut yang digabungkan dengan menggunakan operasi OR bitwise. Nilai yang dihasilkan menentukan masker untuk operasi lain-lain jejak. Bendera ini menunjukkan kemungkinan efek operasi shader ketika tidak menulis register output apa pun. Misalnya, operasi "tambahkan r0, r1 ,r2" menulis ke register r0; oleh karena itu, Anda dapat melihat informasi register yang ditulis jejak untuk menentukan apa operasi yang berubah. Namun, beberapa instruksi shader tidak menulis register apa pun, tetapi masih mempengaruhi register tersebut.
Bendera | Deskripsi |
---|---|
D3D11_TRACE_MISC_GS_EMIT (0x1) | Operasi ini adalah pemancar data shader geometri. |
D3D11_TRACE_MISC_GS_CUT (0x2) | Operasi ini adalah pemotongan strip shader geometri. |
D3D11_TRACE_MISC_PS_DISCARD (0x4) | Operasi ini adalah pembuangan shader piksel, yang menolak piksel. |
D3D11_TRACE_MISC_GS_EMIT_STREAM (0x8) | Sama seperti D3D11_TRACE_MISC_GS_EMIT, kecuali dalam model shader 5 tempat Anda dapat menentukan aliran tertentu untuk dipancarkan. |
D3D11_TRACE_MISC_GS_CUT_STREAM (0x10) | Sama seperti D3D11_TRACE_MISC_GS_CUT, kecuali dalam model shader 5 di mana Anda dapat menentukan aliran tertentu untuk dipotong. |
D3D11_TRACE_MISC_HALT (0x20) | Operasi ini adalah instruksi penghentian shader, yang menghentikan eksekusi shader. Fungsi intrinsik pembatalan HLSL menyebabkan penghentian. |
D3D11_TRACE_MISC_MESSAGE (0x40) | Operasi ini adalah output pesan shader, yang dapat dicatat ke antrean informasi. Fungsi intrinsik cetak HLSL dan kesalahan menyebabkan pesan. |
Jika anggota NumRegistersWritten adalah 0, periksa anggota ini meskipun anggota ini mungkin masih kosong (0).
OpcodeType
Angka yang menentukan jenis instruksi (misalnya, tambahkan, mul, dan sebagainya). Anda dapat mengabaikan anggota ini jika Anda tidak tahu nomor untuk jenis instruksi. Anggota ini menawarkan kenyamanan kecil dengan biaya kembung sedikit pelacakan. Anda dapat menggunakan anggota ID dan memetakan kembali ke kode shader asli untuk mengambil informasi lengkap tentang instruksi.
CurrentGlobalCycle
Jumlah siklus global untuk langkah ini. Anda dapat menggunakan anggota ini untuk menghubungkan eksekusi utas paralel melalui beberapa jejak simultan, misalnya, untuk shader komputasi.
Keterangan
API ini memerlukan Windows Software Development Kit (SDK) untuk Windows 8.
Persyaratan
Klien minimum yang didukung | Windows 8 [hanya 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