드라이버 개발 중 TDR 테스트 및 디버깅

이 문서에서는 디스플레이 드라이버 개발자를 위한 TDR(시간 제한 검색 및 복구) 테스트 및 디버깅 전략을 제공합니다.

WHLK의 TDR 테스트

WHLK( Windows Hardware Lab Kit )에는 드라이버 개발자가 테스트 및 디버깅 목적으로 사용할 수 있는 TDR 관련 테스트가 포함되어 있습니다. 예를 들어 개발자는 SimulatePreemption 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

OS에서 스레드가 드라이버를 떠날 수 있도록 허용하는 시간(초)을 지정합니다. 지정된 시간 후에 OS는 코드 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

컴퓨터를 충돌하지 않고 TdrLimitTime 키로 지정된 시간 동안 허용되는 TDR(0x117)의 기본 수를 지정합니다.

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.