언리얼 엔진으로 제작된 게임을 하다 보면 간헐적으로 컴퓨터가 멈춰버리며, Unreal Engine is exiting due to D3D device being lost. (Error: 0x887A0007 'RESET') 에러 메시지가 뜨는 경우가 있습니다. 화면과 사운드가 잠시 동안 멈춰있다가 게임이 강제 종료됩니다. 흐름이 끊기고 굉장히 스트레스 받는 요소 중 하나로 여러 가지 해결법이 있습니다. 아래 나열된 해결 방법을 하나씩 적용해 보시고, 그래도 해결되지 않는다면 가장 아래 레지스트리 편집 방법까지 적용해 보시면 좋을 것 같습니다.
원인
정확한 원인은 알려지지 않았으나 언리얼 엔진과 그래픽 카드 드라이버의 충돌에 의해 발생한다는 이야기가 있습니다. 정확한 원인을 알 수 없기 때문에 정확한 해결 방법 또한 제시될 수 없으나, 문제가 발생했던 여러 사용자들의 해결 방법을 모아봤습니다. 항간에 떠도는 문서로 사운드 카드 드라이버를 재설치해서 해결된다는 부분이 있는데 사운드 카드 드라이버와는 전혀 관련 없는 오류입니다. 문제가 발생하는 지점이 그래픽 관련이기 때문입니다.
해결 방법
해결 방법은 여러 가지가 있습니다. 더 이상 오류가 발생하지 않을 때까지 한 가지씩 방법을 적용해 볼 수밖에 없습니다. NVIDIA나 MICROSOFT에서 공식 답변을 내놓기 전까지는 집단 지성으로 해결하는 수밖에 없습니다.
1. 윈도우 업데이트 최신화
윈도우 업데이트를 최신화해주세요. 윈도우 작업표시줄 검색창에서 업데이트 확인을 검색하시고 업데이트를 해야 될 것이 있다면 업데이트를 진행해 주세요. 업데이트 후 컴퓨터 재부팅이 필요합니다.
2. 그래픽 카드 드라이버 삭제 후 최신 버전으로 재설치
본인이 사용 중인 그래픽 카드 드라이버를 삭제해 주시고, 최신 버전을 다운로드해서 재설치를 해주세요. 근래에 최신 버전으로 업데이트하신 분이라면 2번은 건너 뛰고 3번을 확인해 주세요.
3. 다이렉트X 최신 버전으로 재설치
다이렉트X도 최신 버전을 유지해 주셔야 됩니다.
4. Tdr 사용하지 않도록 옵션 변경 (레지스트리 편집)
Tdr 이란 Timeout Detection & Recovery의 약자로 드라이버가 특정 이유로 멈추어 응답 대기 상태가 되었을 때 그래픽 카드를 재부팅하는 기능입니다. 해당 기능에 의해 RESET ERROR이 발생할 수 있으며, 기능을 끄고 테스트해 볼 필요가 있습니다. 아래 단계를 잘 따라 하시어 세팅해 주시고, 세팅 완료 후 재부팅을 해주시면 됩니다. 이 방법을 적용하고 실패한 사례는 아직까진 없었습니다.
- 윈도우키 + R 혹은 실행 커맨드를 실행시켜서 regedit을 입력 후 확인
- 좌측 사이드바에서 아래 경로 찾기
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers
- 위 경로에서 빈 곳을 마우스로 우 클릭하여 새로 만들기 메뉴로 진입 후 각자 윈도우에 맞춰서 TdrLevel 생성 (생성되는 파일 이름을 TdrLevel로 해주시면 됩니다. 대문자 및 소문자 구별을 하니 반드시 똑같이 만들어주세요)
- 윈도우 32비트 사용자: DWORD(32비트) 값으로 생성
- 윈도우 64비트 사용자: QWORD(64비트) 값으로 생성
- 혹시 내 컴퓨터가 몇 비트인지 확인하려면 내 PC를 마우스 우 클릭 하셔서 속성에서 볼 수 있습니다.
- 새로 만들어진 TdrLevel을 더블 클릭하여 값을 0으로 수정 (TdrLevel 을 사용하지 않도록 세팅하는 과정입니다)
- 컴퓨터 재부팅
1 ~ 4까지 따라오셨으면 Unreal Engine is exiting due to D3D device being lost. (Error: 0x887A0007 - 'RESET') 문제는 반드시 해결될 것입니다. 사실상 1 ~ 3까지는 기본 준비 사항이고, 결국 4번을 세팅해야만 해결이 될 것입니다. 추가적인 해결 방법이 또 생긴다면 같이 공유드리겠습니다.