Freigeben über


Testen und Debuggen von TDR bei der Treiberentwicklung

In diesem Artikel werden TDR-Test- und -Debugstrategien (Timeout Detection and Recovery, Timeouterkennung und Wiederherstellung) für Entwickler*innen von Grafikanzeigetreibern beschrieben.

TDR-Tests in WHLK

Das Windows Hardware Lab Kit (WHLK) enthält TDR-spezifische Tests, die Treiberentwickler*innen für Test- und Debugzwecke verwenden können. Beispielsweise können Entwickler*innen eine GPU-TDR manuell mithilfe von SimulatePreemption TDR auslösen. Weitere Informationen zu den verschiedenen TDR-Tests finden Sie unter Device.Graphics.

TDR-Registrierungsschlüssel zum Testen und Debuggen

Entwickler*innen können die folgenden TDR-Registrierungsschlüssel nur bei der Treiberentwicklung zu Test- oder Debugzwecken verwenden.

Wichtig

Endbenutzer*innen sollten diese Registrierungsschlüssel nicht bearbeiten. Außerdem sollten sie auch von Anwendungen ausschließlich zu gezielten Test- oder Debugzwecken bei der Treiberentwicklung bearbeitet werden.

TdrLevel

Gibt die erste Wiederherstellungsstufe an.

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

Dabei kann TdrLevelXxx einer der folgenden Werte sein:

Wert Bedeutung
TdrLevelOff (0) Erkennung deaktiviert
TdrLevelBugcheck (1) Fehlerüberprüfung beim erkannten Timeout; z. B. keine Wiederherstellung.
TdrLevelRecoverVGA (2) Wiederherstellen auf VGA (nicht implementiert).
TdrLevelRecover (3) Bei Timeout wiederherstellen (Standardwert).

TdrDelay

Gibt an, wie viele Sekunden die GPU die Vorabanforderung des GPU-Schedulers verzögern kann. TdrDelay ist effektiv der Timeoutschwellenwert.

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

Gibt an, wie viele Sekunden das Betriebssystem Threads zum Verlassen des Treibers zugesteht. Nach einer bestimmten Zeit überprüft das Betriebssystem den Computer mit dem Code 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

Gibt das Debugverhalten des TDR-Prozesses an. Der Standardwert ist TDR_DEBUG_MODE_RECOVER_NO_PROMPT, womit angegeben wird, dass der Debugger nicht unterbrochen werden soll.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
Wert Bedeutung
TDR_DEBUG_MODE_OFF (0) Den Kerneldebugger vor der Wiederherstellung unterbrechen, damit das Timeout untersucht werden kann.
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) Jedes Timeout ignorieren.
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) Wiederherstellen, ohne den Debugger zu unterbrechen (Standardwert).
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) Wiederherstellung erfolgt auch dann, wenn einige Wiederherstellungsbedingungen nicht erfüllt sind (z. B. Wiederherstellung bei aufeinanderfolgenden Timeouts).

TdrLimitTime

Gibt die Standardzeit an, in der eine bestimmte Anzahl von TDRs (angegeben durch den TdrLimitCount-Schlüssel) durchgeführt werden können, ohne dass der Computers abstürzt.

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

Gibt die Standardanzahl von TDRs (0x117) an, die während der mit dem TdrLimitTime-Schlüssel angegebenen Zeit durchgeführt werden können, ohne dass der Computer abstürzt.

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

Reserviert. Nicht verwenden.

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

TdrDodPresentDelay

Gibt an, wie viele Sekunden die DxgkDdiPresentDisplayOnly-Funktion des Nur-Kernelmodusanzeige-Treibers (Kernel-mode Display-only, KMDOD) zum Abschließen eines „Asynchronous Present“ benötigt, indem der Fortschritt an pfnPresentDisplayOnlyProgress gemeldet wird (übergeben in der DXGKARG_PRESENT_DISPLAYONLY-Struktur).

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

Gibt an, wie viele Sekunden der V-Sync-Watchdog wartet, bis ein V-Sync-Signal gemeldet wird und ein TDR in einem KMDOD ausgelöst wird.

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.