Поделиться через


Тестирование и отладка TDR во время разработки драйверов

В этой статье описываются стратегии тестирования и отладки TDR (обнаружение и восстановление времени ожидания) для разработчиков графических драйверов.

Тесты TDR в WHLK

Комплект Windows Hardware Lab Kit (WHLK) содержит тесты, специфичные для TDR, которые разработчики драйверов могут использовать для тестирования и отладки. Например, разработчики могут вручную активировать сбой TDR в графическом процессоре с помощью SimulatePreemption 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 (не реализовано).
Уровень восстановления Tdr (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

Указывает количество секунд, в течение которых ОС позволяет потокам оставить драйвер. По истечении указанного времени ОС проверяет компьютер на наличие ошибки с кодом 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) - это режим отладки безусловного восстановления TDR Восстанавливайтесь, даже если некоторые условия восстановления не выполнены (например, при последовательном истечении времени ожидания).

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

Указывает значение по умолчанию для числа TDR (0x117), допускаемое в течение времени, указанного ключом TdrLimitTime, без сбоя компьютера.

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-sync ожидает передачи сигнала V-sync перед активацией TDR в 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.