레지스트리 편집기의 이중 데이터값은 몇 진수

Choose your operating system:

GPU 크래시 알림

그래픽이 무거운 프로젝트를 작업하다 보면 GPU 크래시가 발생할 수 있습니다. 이 경우 아래와 같은 창이 나타납니다.

GPU 크래시

그리고 보통은 언리얼 엔진 크래시 리포터 창이 표시됩니다.

언리얼 엔진 크래시 창

이미지를 클릭하면 최대 크기로 볼 수 있습니다.

GPU 크래시가 발생하는 이유

Windows에는 메모리를 너무 많이 사용하여 애플리케이션이 멈추는 것을 예방하기 위한 보호 장치가 있습니다. 애플리케이션 렌더링에 몇 초 이상이 걸리면 Windows가 GPU 드라이버를 중지시켜 애플리케이션 크래시가 발생합니다. 언리얼 엔진과 같은 애플리케이션 내에서는 렌더링에 소요되는 시간을 알 수 없기 때문에 애플리케이션 차원에서 크래시를 피하는 것이 불가능합니다.

크래시 해결하기

프로젝트 개발 중에 GPU 크래시가 발생하는 것은 드문 일이 아닙니다. 개발 과정에서 이러한 종류의 크래시를 피하는 방법 중 하나는 Windows 레지스트리 키를 편집해서 시스템에 렌더링 처리 시간을 더 주는 것입니다. 이 가이드에서는 두 개의 레지스트리 키를 새로 생성합니다. 바로 TdrDelayTdrDdiDelay 입니다.

  • TdrDelay 는 타임아웃 한계치를 설정합니다. 이 레지스트리 키는 GPU에서 프로세싱과 메모리(VRAM)를 처리하는 GPU 스케줄러의 선점 요청이 지연되는 시간을 초 단위로 나타냅니다.

  • TdrDdiDelay 는 운영체제(OS)에서 스레드가 드라이버를 빠져나가는 데 주어지는 시간을 설정합니다. 이 시간이 지나면 타임아웃 딜레이 오류가 발생합니다.

레지스트리 키에 대한 자세한 정보는 TDR 레지스트리 키에 대한 Microsoft 공식 문서를 참고하세요.

Windows 운영체제에서 레지스트리 키를 변경하면 예상하지 못한 결과로 Windows 전체를 다시 설치해야 할 수 있습니다. 이 튜토리얼에 따라 레지스트리 키를 추가하거나 편집하는 경우 이러한 문제가 발생하지 않지만, 만약을 대비해 미리 시스템을 백업해 두는 것을 권장합니다. 에픽게임즈는 시스템 레지스트리 수정에 따라 발생하는 시스템 손상에 대해 책임지지 않습니다.

그래픽 드라이버에는 두 개의 레지스트리 키를 추가해야 합니다. 아래 단계에 따라 레지스트리 키를 추가합니다.

  1. Windows 운영체제 검색창에 ‘실행(Run)' 을 입력합니다. 실행 애플리케이션을 엽니다.

    검색창에 실행 입력

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  2. 검색 필드에 ‘regedit' 을 입력합니다. 예(OK) 를 누르면 레지스트리 편집기가 열립니다.

    regedit 실행

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  3. 레지스트리 편집기 왼쪽에 있는 GraphicsDrivers 섹션으로 이동합니다. 위치는 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers 입니다.

    레지스트리 편집기의 그래픽 드라이버 섹션

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

    GraphicsDrivers 폴더에 레지스트리 키를 추가합니다. 하위 폴더에 추가하지 않도록 유의하세요. 올바른 폴더를 선택해야 합니다.

  4. 추가해야 하는 레지스트리 키는 TdrDelay 입니다. 레지스트리 키가 이미 존재한다면 키를 더블클릭한 후 편집합니다. 레지스트리 키가 없다면 오른쪽 패널을 우클릭하고 새로 만들기(New) > DWORD(32비트) 값(DWORD (32-bit) Value) 을 선택합니다.

    새 DWORD 레지스트리 키 생성

  5. 단위(Base)10진수(Decimal) 로 설정합니다. TdrDelay의 값(Value)60 으로 설정합니다. 확인(OK) 을 클릭해 완료합니다.

    TdrDelay 설정

  6. 두 번째로 추가할 레지스트리 키는 TdrDdiDelay 입니다. 레지스트리 키가 이미 존재한다면 키를 더블클릭한 후 편집합니다. 레지스트리 키가 없다면 오른쪽 패널을 우클릭하고 새로 만들기 > DWORD(32비트) 값 을 선택해 생성합니다.

  7. 단위10진수 로 설정합니다. TdrDdiDelay60 으로 설정합니다. 확인 을 클릭해 완료합니다.

    TdrDdiDelay 설정

  8. 이제 레지스트리에 TdrDelayTdrDdiDelay 가 추가되었습니다.

    그래픽 드라이버 레지스트리 키 최종 설정

    이미지를 클릭하면 최대 크기로 볼 수 있습니다.

  9. 레지스트리 편집기를 닫습니다.

  10. 컴퓨터를 재시작하면 변경 사항이 적용됩니다.

결과

위 레지스트리 키를 추가하면 60초가 지나야 Windows가 애플리케이션의 렌더링 프로세스에 너무 오랜 시간이 걸린다고 판단합니다. 그래도 비슷한 GPU 크래시가 발생한다면 TdrDelayTdrDdiDelay60 에서 120 초로 변경합니다.

이 방법은 렌더링으로 인한 GPU 크래시를 피하는 데 효과적이지만 모든 크래시를 해결해 주지는 않습니다. 한 번에 너무 많은 데이터를 처리하려고 하면 타임아웃 딜레이에 설정한 시간과 관계없이 GPU 타임아웃이 발생할 수 있습니다. 이 해결책은 그래픽 카드의 처리 시간을 좀 더 확보해 주기 위한 용도로만 만들어졌습니다.