在驅動程式開發期間測試和偵錯 TDR
本文說明圖形顯示驅動程序開發人員的 TDR(逾時偵測和復原)測試和偵錯策略。
WHLK 中的 TDR 測試
Windows 硬體實驗室套件 (WHLK) 包含 TDR 特定測試,驅動程式開發人員可用來進行測試和偵錯。 例如,開發人員可以使用 SimulatePreemption TDR 手動觸發 GPU 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.