GPU 관련 오류 및 충돌 중 가장 흔하게 발생하는 것이 바로 TDR(Timeout Detection and Recovery, 시간 초과 감지 및 복구) 오류입니다. 이 오류는 로그나 이벤트 뷰어(Event Viewer) 등에서 확인할 수 있으며, 대표적인 오류 메시지로는 “디스플레이 드라이버가 응답을 멈추었지만 복구되었습니다”가 있고, 경우에 따라 Bug Check 0x116: VIDEO_TDR_ERROR 스톱 코드를 동반한 블루스크린(BSOD)이 나타나기도 합니다.
이 글에서는 이러한 TDR 오류를 진단하고 해결하는 다양한 방법을 소개합니다.

TDR(Timeout Detection and Recovery)이란?
TDR은 Windows Vista부터 Windows 7, 8.1, 10, 11까지 모든 버전에 포함되어 있는 기능으로, 그래픽 시스템에 문제가 발생했을 때 이를 자동으로 감지하고 데스크톱을 정상 상태로 복구하는 역할을 합니다.
MSDN에 따르면 TDR 프로세스는 다음 세 단계로 진행됩니다.
- 시간 초과 감지: Windows 그래픽 스택의 비디오 스케줄러(Video Scheduler) 구성 요소가 GPU가 특정 작업을 처리하는 데 허용된 시간보다 오래 걸린다는 것을 감지하고, 해당 작업을 선점(preempt)하려고 시도합니다. 이때 선점 작업에는 대기 시간 제한이 있으며, 이것이 바로 실질적인 “TDR 시간 초과”입니다. Windows의 기본 시간 초과 값은 2초입니다. GPU가 이 시간 안에 현재 작업을 완료하거나 선전하지 못하면 GPU가 정지(hang)된 것으로 판단합니다.
- 복구 준비: 운영체제는 WDDM 드라이버에 시간 초과가 감지되었음을 알리고 GPU를 재설정하도록 지시합니다. 드라이버는 더 이상 메모리에 접근하지 않아야 하며, 이 시점 이후 하드웨어 접근도 중단해야 합니다. 운영체제와 WDDM 드라이버는 사후 분석(post-mortem diagnosis)에 유용한 하드웨어 및 각종 상태 정보를 수집합니다.
- 데스크톱 복구: 운영체제는 그래픽 스택의 적절한 상태를 재설정합니다. 그래픽 스택의 비디오 메모리 관리자(Video Memory Manager)가 비디오 메모리의 모든 할당 정보를 삭제하고, WDDM 드라이버가 GPU 하드웨어 상태를 초기화합니다. 그런 다음 그래픽 스택이 최종 조치를 취해 데스크톱을 정상 반응 상태로 복원합니다. 앞서 언급했듯이 일부 구형 DirectX 애플리케이션은 화면이 검게 표시될 수 있으며, 사용자가 해당 프로그램을 다시 시작해야 할 수 있습니다. 반면 “Device Remove”를 올바르게 처리하도록 작성된 DirectX 9Ex 및 DirectX 10 애플리케이션은 정상적으로 계속 작동합니다. 애플리케이션이 정상 작동하려면 Microsoft Direct3D 장치와 모든 개체를 해제한 후 다시 생성해야 하며, DirectX 개발자는 Windows SDK에서 관련 정보를 확인할 수 있습니다.
“디스플레이 드라이버가 응답을 멈추었지만 복구되었습니다” 오류
TDR 오류 발생 시 가장 자주 보이는 메시지가 “디스플레이 드라이버가 응답을 멈추었지만 복구되었습니다(Display driver stopped responding and has recovered)”이며, 심한 경우 Bug Check 0x116: VIDEO_TDR_ERROR 스톱 코드와 함께 블루스크린이 나타날 수 있습니다.

TDR 오류 해결 방법
다음 방법들을 순서대로 시도해 보세요.
- 메모리(RAM) 점검: RAM에 결함이 있다면 디스플레이 충돌의 원인일 가능성이 높습니다. Memtest86+ 같은 도구로 고급 메모리 진단을 실행해 보세요. 또한 BIOS에서 RAM의 타이밍과 전압 설정이 올바른지도 확인하고, 확실하지 않다면 메인보드와 RAM 매뉴얼을 참조하세요.
- GPU 오버클러킹 해제: GPU 오버클러킹이 원인일 수 있습니다. 오버클러킹을 적용했다면 값을 기본값으로 되돌린 후 문제가 해결되는지 테스트해 보세요.
- 손상된 디스플레이 드라이버 정리: 디스플레이 드라이버가 손상되면 디스플레이 충돌이 발생할 가능성이 큽니다. 단순히 제거 후 재설치만으로는 해결되지 않는 경우가 많으므로, NVIDIA 및 AMD 카드용 드라이버 클린업 도구를 사용해 잔여 파일까지 완전히 제거한 뒤 새 드라이버를 설치하세요.
- 과열 확인: 게임이나 GPU를 많이 사용하는 소프트웨어 실행 중 그래픽카드가 과도하게 뜨거워지면 드라이버가 충돌하고, 나아가 시스템 전체가 다운될 수 있습니다. RivaTuner 같은 프로그램으로 온도를 확인하고, 팬 설정을 조정해 변화가 있는지 살펴보세요. 그래도 개선되지 않으면 컴퓨터 수리점에서 본체 내부 청소를 받아 먼지 문제를 배제하는 것이 좋습니다.
- 전력 부족 또는 불량 PSU 확인: 그래픽카드가 정상 작동하려면 충분한 전력이 필요하며, 전력이 부족하면 오작동할 수 있습니다. 파워 서플라이 계산기(Power Supply Calculator)를 활용해 시스템에 필요한 전력량이 충분한지 확인하세요. 전력이 충분하다면 수리점에서 다른 파워서플라이로 교체 테스트를 받아보는 것이 좋습니다.
- 레지스트리 디버깅(고급 사용자): 숙련된 사용자라면 Windows 레지스트리에서 TDR 디버깅을 활성화하는 방법도 있습니다.
- 그래픽카드 자체 고장 점검: 위의 모든 방법으로도 해결되지 않는다면 그래픽카드 자체의 불량일 가능성이 높습니다. 아직 보증 기간이라면 교환 신청을 하세요.
이 방법들이 TDR 관련 오류를 해결하는 데 도움이 되기를 바랍니다. 추가로 알고 있는 해결 방법이 있다면 의견으로 공유해 주세요.