Condividi tramite


Test e debug della route TDR durante lo sviluppo di driver

Questo articolo descrive le strategie di test e debug TDR (timeout detection and recovery) per sviluppatori di driver di visualizzazione grafica.

Test TDR in WHLK

Windows Hardware Lab Kit (WHLK) contiene test specifici del TDR che gli sviluppatori di driver possono usare per scopi di test e debug. Ad esempio, gli sviluppatori possono attivare manualmente una route TDR gpu usando il TDR SimulatePreemption. Per altre informazioni sui vari test correlati alla route TDR, vedere Device.Graphics.

Chiavi del Registro di sistema TDR per il test e il debug

Gli sviluppatori possono usare le chiavi del Registro di sistema correlate al TDR seguenti per scopi di test o debug solo durante il processo di sviluppo dei driver.

Importante

È consigliabile che gli utenti finali non manipolano queste chiavi del Registro di sistema. Non devono essere manipolate anche dalle applicazioni al di fuori di test o debug mirati durante lo sviluppo di driver.

TdrLevel

Specifica il livello iniziale di ripristino.

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

Dove TdrLevelXxx può essere uno dei valori seguenti:

Valore Significato
TdrLevelOff (0) Rilevamento disabilitato
TdrLevelBugcheck (1) Controllo dei bug sul timeout rilevato; ad esempio, nessun recupero.
TdrLevelRecoverVGA (2) Ripristino in VGA (non implementato).
TdrLevelRecover (3) Ripristino in caso di timeout (valore predefinito).

TdrDelay

Specifica il numero di secondi che la GPU può ritardare la richiesta di precedenza dall'utilità di pianificazione GPU. TdrDelay è effettivamente la soglia di timeout.

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

Specifica il numero di secondi che il sistema operativo consente ai thread di lasciare il driver. Dopo un determinato periodo di tempo, il sistema operativo controlla il computer con il codice 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

Specifica il comportamento correlato al debug del processo TDR. Il valore predefinito è TDR_DEBUG_MODE_RECOVER_NO_PROMPT, che indica di non eseguire l'interruzione nel debugger.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
Valore Significato
TDR_DEBUG_MODE_OFF (0) Interrompere il debugger del kernel prima del ripristino per consentire l'analisi del timeout.
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) Ignorare qualsiasi timeout.
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) Eseguire il ripristino senza interrompere il debugger (valore predefinito).
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) Eseguire il ripristino anche se alcune condizioni di ripristino non vengono soddisfatte( ad esempio, ripristinare in caso di timeout consecutivi).

TdrLimitTime

Specifica l'ora predefinita entro la quale è consentito un numero specifico di TDR (specificato dalla chiave TdrLimitCount ) senza arrestare il computer.

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

Specifica il numero predefinito di richieste TDR (0x117) consentite durante il tempo specificato dalla chiave TdrLimitTime senza arrestare il computer.

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

Riservato. Non usare.

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

TdrDodPresentDelay

Specifica il numero di secondi consentiti per la funzione DxgKDDD (KMDOD) del driver in modalità kernel per completare un presente asincrono segnalando lo stato di avanzamento a pfnPresentDisplayOnlyProgress (passato nella struttura 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

Specifica il numero di secondi in cui il watchdog di sincronizzazione V attende che venga segnalato un segnale di sincronizzazione V prima di attivare un TDR in un 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.