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


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

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

Тесты TDR в WHLK

Комплект лабораторий оборудования Windows (WHLK) содержит тесты, относящиеся к TDR, которые разработчики драйверов могут использовать для тестирования и отладки. Например, разработчики могут вручную активировать TDR GPU с помощью 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 (не реализовано).
TdrLevelRecover (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) Восстановление даже в том случае, если некоторые условия восстановления не выполнены (например, восстановление при последовательном истечении времени ожидания).

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.