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.