Bagikan melalui


Menguji dan men-debug TDR selama pengembangan driver

Artikel ini menjelaskan strategi pengujian dan penelusuran kesalahan TDR (deteksi dan pemulihan waktu habis) untuk pengembang driver tampilan grafis.

Tes TDR di WHLK

Windows Hardware Lab Kit (WHLK) berisi pengujian khusus TDR yang dapat digunakan pengembang driver untuk tujuan pengujian dan penelusuran kesalahan. Misalnya, pengembang dapat memicu TDR GPU secara manual menggunakan TDR SimulatePreemption. Lihat Device.Graphics untuk informasi selengkapnya tentang berbagai pengujian terkait TDR.

Kunci registri TDR untuk pengujian dan penelusuran kesalahan

Pengembang dapat menggunakan kunci registri terkait TDR berikut untuk tujuan pengujian atau penelusuran kesalahan hanya selama proses pengembangan driver.

Penting

Sebaiknya pengguna akhir tidak memanipulasi kunci registri ini. Mereka juga tidak boleh dimanipulasi oleh aplikasi di luar pengujian atau penelusuran kesalahan yang ditargetkan selama pengembangan driver.

TdrLevel

Menentukan tingkat pemulihan awal.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrLevel
ValueType : REG_DWORD
ValueData : TdrLevelXxx (see the following table)

Di mana TdrLevelXxx dapat menjadi salah satu nilai berikut:

Nilai Makna
TdrLevelOff (0) Deteksi dinonaktifkan
TdrLevelBugcheck (1) Pemeriksaan bug pada batas waktu yang terdeteksi; misalnya, tidak ada pemulihan.
TdrLevelRecoverVGA (2) Pulihkan ke VGA (tidak diimplementasikan).
TdrLevelRecover (3) Pulihkan pada waktu habis (nilai default).

TdrDelay

Menentukan jumlah detik bahwa GPU dapat menunda permintaan preempt dari penjadwal GPU. TdrDelay secara efektif merupakan ambang batas waktu.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDelay
ValueType : REG_DWORD
ValueData : Number of seconds to delay. The default value is 2 seconds.

TdrDdiDelay

Menentukan jumlah detik yang diizinkan OS untuk meninggalkan driver. Setelah waktu yang ditentukan, OS memeriksa bug komputer dengan kode VIDEO_TDR_FAILURE (0x116).

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDdiDelay
ValueType : REG_DWORD
ValueData : Number of seconds to leave the driver. The default value is 5 seconds.

TdrDebugMode

Menentukan perilaku terkait penelusuran kesalahan dari proses TDR. Nilai default adalah TDR_DEBUG_MODE_RECOVER_NO_PROMPT, yang menunjukkan untuk tidak masuk ke debugger.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
Nilai Makna
TDR_DEBUG_MODE_OFF (0) Istirahat ke debugger kernel sebelum pemulihan untuk memungkinkan penyelidikan batas waktu.
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) Abaikan batas waktu.
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) Pulihkan tanpa masuk ke debugger (nilai default).
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) Pulihkan bahkan jika beberapa kondisi pemulihan tidak terpenuhi (misalnya, pulih pada batas waktu berturut-turut).

TdrLimitTime

Menentukan waktu default di mana sejumlah TDR tertentu (ditentukan oleh kunci TdrLimitCount ) diizinkan tanpa menabrak komputer.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrLimitTime
ValueType : REG_DWORD
ValueData : Number of seconds before crashing. The default value is 60 seconds.

TdrLimitCount

Menentukan jumlah default TDR (0x117) yang diizinkan selama waktu yang ditentukan oleh kunci TdrLimitTime tanpa menabrak komputer.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrLimitCount
ValueType : REG_DWORD
ValueData : Number of TDRs before crashing. The default value is 5.

TdrTestMode

Dicadangkan. Jangan gunakan.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrTestMode
ValueType : REG_DWORD
ValueData : Do not use.

TdrDodPresentDelay

Menentukan jumlah detik yang diizinkan untuk fungsi driver khusus tampilan mode kernel (KMDOD) DxgkDdiPresentDisplayOnly untuk menyelesaikan asinkron yang ada dengan melaporkan kemajuan ke pfnPresentDisplayOnlyProgress (yang diteruskan dalam struktur DXGKARG_PRESENT_DISPLAYONLY).

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDodPresentDelay
ValueType : REG_DWORD
ValueData : Number of seconds allowed for **DxgkDdiPresentDisplayOnly** to complete an asynchronous present. The default value is 2 seconds. (Min: 1, Max: 15 * 60 = 15 minutes). This value is for debugging purposes only.

TdrDodVSyncDelay

Menentukan jumlah detik pengawas sinkronisasi V menunggu sinyal sinkronisasi V dilaporkan sebelum memicu TDR di KMDOD.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDodVSyncDelay
ValueType : REG_DWORD
ValueData : Number of seconds that the V-sync watchdog waits for a V-sync to be reported before a TDR occurs with Kernel Mode Display-Only Drivers. Drivers are expected to report V-sync interrupts at the cadence of the display mode refresh rate. The default value is 2 seconds. (Min: 1s, Max: 15 * 60 = 15 minutes). This value is for debugging purposes only.