진단 매트릭스: 언리얼 엔진 D3D 디바이스 분실 오류 원인 및 해결책
《검은 신화: 오공》, 《퍼스트 디센던트》, 《렘넌트 2》 등 언리얼 엔진 4/5 기반 최신 게임을 구동할 때, 화면이 멈추며 다음과 같은 치명적 오류 창이 뜨는 경우가 많습니다: LowLevelFatalError ... Unreal Engine is exiting due to D3D device being lost. (Error: 0x887A0006 - 'HUNG'). 이는 그래픽카드가 복잡한 셰이더 연산을 처리하는 도중, 윈도우 OS의 타임아웃 감시 기능(TDR)이 그래픽 드라이버를 강제로 재부팅하여 발생합니다.
| 오류 코드 및 메시지 | 주요 발생 원인 | 관련 하드웨어/소프트웨어 | TdrDelay 레지스트리 효과 | 권장 해결 조치 |
|---|---|---|---|---|
DXGI_ERROR_DEVICE_HUNG (0x887A0006) | 과도한 셰이더 연산 시간이 윈도우 기본 대기시간(2초)을 초과함 | GPU 명령 큐 / Windows TDR | 매우 뛰어남 (즉각 해결) | 레지스트리에서 TdrDelay 값을 8~10초로 연장 |
DXGI_ERROR_DEVICE_REMOVED (0x887A0005) | 팩토리 오버클럭 불안정성 또는 전원부 피크 전압 스파이크 | PCIe 전원 공급 / 그래픽카드 수율 | 부분적 (근본 결함 은폐 가능) | 애프터버너로 GPU 코어 클럭 50MHz 다운클럭, 전력제한 95% |
DXGI_ERROR_OUT_OF_MEMORY (0x887A000E) | 레이 트레이싱 또는 루멘 활성화 시 물리 VRAM(비디오 메모리) 고갈 | DirectX 12 메모리 관리자 | 무효 (물리적 메모리 한계) | 텍스처 해상도 하향 조정, DLSS/FSR 품질 모드 적용 |
| 셰이더 컴파일 중 튕김 | 인텔 13/14세대 CPU Vmin Shift 전압 불안정성으로 연산 오류 | CPU 마이크로코드 / 메인보드 전원 | 무효 (CPU 물리적 문제) | 메인보드 BIOS를 최신 마이크로코드(0x129+)로 업데이트 |
윈도우 TDR(Timeout Detection and Recovery)의 동작 메커니즘
윈도우 운영체제에는 화면 먹통을 감지하는 와치독이 탑재되어 있습니다:
- 루멘(Lumen) 소프트웨어 레이 트레이싱이나 나나이트(Nanite) 지오메트리를 연산할 때 GPU 점유율이 100%까지 치솟습니다.
- 특정 연산이 2초 내에 응답을 반환하지 못하면, 윈도우는 그래픽카드가 영구 정지한 것으로 판단합니다.
- OS는 화면을 1초간 깜빡이며 그래픽 드라이버를 강제로 리셋합니다.
- 이 과정에서 DirectX 12 렌더링 컨텍스트가 파괴되므로, 언리얼 엔진은 그래픽 디바이스가 유실되었다고 판단하여 즉시 게임을 종료합니다.
시스템 최적화 실전 가이드
1단계: 레지스트리에서 TDR 타임아웃 시간 연장
Win + R을 누르고regedit을 입력하여 레지스트리 편집기를 실행합니다.- 다음 경로로 이동합니다:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers - 오른쪽 빈 공간에서 마우스 우클릭 -> 새로 만들기 -> DWORD(32비트) 값 선택.
- 이름에
TdrDelay를 입력합니다. - 더블 클릭하여 단위를 10진수로 변경하고, 값 데이터에 8을 입력합니다 (대기 한도를 2초에서 8초로 늘림).
- 동일하게 DWORD 값을 하나 더 만들고 이름을
TdrDdiDelay로 지정한 뒤, 10진수 8을 입력합니다. - PC를 재부팅하여 새 설정을 적용합니다.
2단계: 불안정한 게임의 경우 DX11 강제 구동
- 스팀 라이브러리에서 게임 우클릭 -> 속성 -> 일반 -> 시작 옵션.
-dx11또는-d3d11을 입력하여 구형 안정화 파이프라인으로 우회 실행합니다.