Compartir a través de


Pruebas y depuración de TDR durante el desarrollo de controladores

En este artículo se describen las estrategias de pruebas y depuración de TDR (detección de tiempo de espera y recuperación) para desarrolladores de controladores de pantalla de gráficos.

Pruebas de TDR en WHLK

El Windows Hardware Lab Kit (WHLK) contiene pruebas específicas de TDR que los desarrolladores de controladores pueden usar con fines de prueba y depuración. Por ejemplo, los desarrolladores pueden desencadenar manualmente un TDR de GPU mediante SimulatePreemption TDR. Consulte Device.Graphics para obtener más información sobre las diversas pruebas relacionadas con TDR.

Claves del Registro de TDR para pruebas y depuración

Los desarrolladores pueden usar las siguientes claves del Registro relacionadas con TDR con fines de prueba o depuración solo durante el proceso de desarrollo de controladores.

Importante

Se recomienda que los usuarios finales no manipulen estas claves del Registro. Tampoco deben manipularse mediante aplicaciones fuera de las pruebas o depuraciones dirigidas durante el desarrollo de controladores.

TdrLevel

Especifica el nivel inicial de recuperación.

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

Donde TdrLevelXxx puede ser uno de los siguientes valores:

Valor Significado
TdrLevelOff (0) Detección deshabilitada
TdrLevelBugcheck (1) Comprobación de errores en el tiempo de espera detectado; por ejemplo, sin recuperación.
TdrLevelRecoverVGA (2) Recuperar a VGA (no implementado).
TdrLevelRecover (3) Recuperar al tiempo de espera (valor predeterminado).

TdrDelay

Especifica el número de segundos que la GPU puede retrasar la solicitud de adelantamiento del programador de GPU. TdrDelay es efectivamente el umbral de tiempo de espera.

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

Especifica el número de segundos que el sistema operativo permite que los subprocesos salgan del controlador. Después de un tiempo especificado, el sistema operativo comprueba el equipo con el código 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

Especifica el comportamiento relacionado con la depuración del proceso de TDR. El valor predeterminado es TDR_DEBUG_MODE_RECOVER_NO_PROMPT, lo que indica que no se debe entrar en el depurador.

KeyPath   : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue  : TdrDebugMode
ValueType : REG_DWORD
ValueData : TDR_DEBUG_MODE_XXX (see the following table)
Valor Significado
TDR_DEBUG_MODE_OFF (0) Entrar en el depurador de kernel antes de la recuperación para permitir la investigación del tiempo de espera.
TDR_DEBUG_MODE_IGNORE_TIMEOUT (1) Ignorar cualquier tiempo de espera.
TDR_DEBUG_MODE_RECOVER_NO_PROMPT (2) Recuperar sin entrar en el depurador (valor predeterminado).
TDR_DEBUG_MODE_RECOVER_UNCONDITIONAL (3) Recuperar incluso si no se cumplen algunas condiciones de recuperación (por ejemplo, recuperación en tiempos de espera consecutivos).

TdrLimitTime

Especifica la hora predeterminada en la que se permite un número específico de TDR (especificado por la clave TdrLimitCount ) sin bloquear el equipo.

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

Especifica el número predeterminado de TDR (0x117) que se permiten durante el tiempo especificado por la clave TdrLimitTime sin bloquear el equipo.

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

Reservado. No usar.

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

TdrDodPresentDelay

Especifica el número de segundos permitidos para la función DxgkDdiPresentDisplayOnly del controlador en modo kernel de solo pantalla (KMDOD) para completar una presencia asincrónica notificando el progreso a pfnPresentDisplayOnlyProgress (que se pasa a la estructura 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

Especifica el número de segundos que el guardián de sincronización virtual espera a que se notifique una señal de sincronización virtual antes de desencadenar un TDR en 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.