本文說明圖形顯示驅動程序開發人員的 TDR(逾時偵測和復原)測試和偵錯策略。
WHLK 中的 TDR 測試
Windows 硬體實驗室套件 (WHLK) 包含 TDR 特定測試,驅動程式開發人員可用來進行測試和偵錯。 例如,開發人員可以手動觸發 GPU TDR,使用 SimulatePreemption TDR。 如需各種 TDR 相關測試的詳細資訊,請參閱 Device.Graphics。
用於測試和偵錯的 TDR 登錄機碼
只有在驅動程式開發程式期間,才能使用下列 TDR 相關的登錄機碼進行測試或偵錯。
重要
使用者不應該操作這些登錄機碼。 應用程式不應該在驅動程式開發期間,在目標測試或偵錯之外操作這些登錄機碼。
TdrLevel
指定復原的初始層級。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrLevel
ValueType : REG_DWORD
ValueData : TdrLevelXxx (see the following table)
其中 TdrLevelXxx 可以是下列其中一個值:
| 值 | 意義 |
|---|---|
| TdrLevelOff (0) | 偵測已停用 |
| TdrLevelBugcheck (1) | 偵測到的逾時錯誤檢查;例如,沒有復原。 |
| TdrLevelRecoverVGA(2) | 復原至 VGA(未實作)。 |
| TdrLevelRecover (3) | 逾時後復原(預設值)。 |
TdrDelay
指定可以讓 GPU 延遲執行來自 GPU 排程器的搶佔請求的秒數。 TdrDelay 實際上是逾時閾值。
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
指定 OS 允許線程離開驅動程式的秒數。 在指定的時間之後,OS 會使用代碼 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
指定 TDR 進程的偵錯相關行為。 默認值為 TDR_DEBUG_MODE_RECOVER_NO_PROMPT,表示不要進入除錯器。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
| 值 | 意義 |
|---|---|
| TDR_DEBUG_MODE_OFF (0) | 在復原之前進入核心偵錯模式,以便調查逾時現象。 |
| TDR_DEBUG_MODE_IGNORE_TIMEOUT(1) | 忽略任何超時。 |
| TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) | 在不進入除錯器的情況下復原(預設值)。 |
| TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) | 即使不符合某些復原條件,仍會復原(例如,在連續逾時時復原)。 |
TdrLimitTime
指定在不會導致電腦當機的情況下,允許特定 TDR 數目的默認時間(由 TdrLimitCount 機碼指定)。
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
指定系統在 TdrLimitTime 金鑰指定的時間內允許的預設 TDR (0x117) 數目,而不會使電腦當機。
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
已保留。 請勿使用。
KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrTestMode
ValueType : REG_DWORD
ValueData : Do not use.
TdrDodPresentDelay
指定允許內核模式顯示驅動程式(KMDOD)的 DxgkDdiPresentDisplayOnly 函式完成異步呈現所需的秒數,藉由將進度回報至 pfnPresentDisplayOnlyProgress。這是在 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
指定 V 同步監視程式在觸發 KMDOD 中的 TDR 之前,等候回報 V 同步訊號的秒數。
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.