언리얼 엔진의 크래시 리포트는 에픽게임즈에게 유저 크래시에 대한 정말 유용한 정보를 제공해주며, 어느 소스 코드에서 크래시가 발생했는지도 보여주는 아주 중요한 역할을 수행합니다. 에픽게임즈는 이 데이터를 기반으로 문제가 되는 부분을 추적하고 수정하여 엔진의 전체적인 안정성을 개선합니다.
GPU의 크래시를 추적하는 것은 훨씬 어렵습니다. 지금까지 그래픽 드라이버는 크래시가 발생하던 시점에서 그래픽 카드가 어떤 작업을 하고 있었는지 보고할 수 있는 능력이 없었습니다. 따라서 CPU에서 크래시가 발생하던 순간에 어느 소스코드가 크래시를 일으켰는지 추적하는데 매우 중요한 컨텍스트 정보를 제공할 수 없었습니다. 가끔씩은 사용자에게 Direct3D 디버그 레이어를 활성화시키도록 하여(-d3ddebug) GPU의 크래시를 일으켰을 수 있는 버그들을 잡아낸 경우도 있었지만, 이런 방법이 모든 문제를 해결할 수 있는 것은 아닙니다.
엔비디아(NVIDIA)의 애프터매스(Aftermath)는 위에서 언급했던 것처럼 GPU가 크래시를 일으키던 당시 어떤 작업을 하고 있었는지에 대한 아주 중요한 정보를 제공합니다. 아직 소스 코드의 위치까지 정확하게 포착하지는 못하지만 크래시가 발생한 프레임, 예컨대 특정 포스트 프로세싱 패스를 알아낼 수 있습니다.
문제점 추적
언리얼 4.14 프리뷰 1 버전이 공개되었을 무렵(작년 10월), 에픽게임즈는 특정 D3D 크래시와 관련된 수많은 버그 리포트들이 제보된다는 점을 파악했으나, 이에 대응할 수 있는 적절한 정보를 수집할 수가 없었습니다. 지금까지 이 문제는 티켓 UE-42280으로 추적해왔습니다.
이 문제와 관련된 리포트는 지난 몇 개월동안 계속해서 쌓여가는데 정작 핵심적인 문제를 고칠 수 없다는 것은 정말 좌절스러웠기에, 에픽게임즈는 엔비디아와의 밀접한 협력을 통해 현재 무슨 일이 벌어지고 있는지 더 잘 이해하려 했습니다. 최근 엔비디아는 이런 크래시들의 근원을 추적하는 데 도움이 될 만한 추가 정보를 제공하는 신기술 애프터매스를 개발해 내었습니다.
언리얼 엔진은 4.15.2 버전부터 엔비디아의 애프터매스를 통합하여, GPU에서 어떤 일이 벌어지는지 추적하는 데 도움이 될만한 적절한 정보를 제공할 것입니다. 여러분의 크래시 리포트는 엔진의 버그를 수정하는데 엄청난 도움이 되므로, 계속해서 버그 리포트를 보내주실 것을 강력하게 권장합니다. 크래시 리포트를 제출하실 때는 로그 파일도 함께 제출하겠다는 체크박스도 함께 활성화 해주시기 바랍니다. 현재 언리얼 엔진 4.15.1 버전으로 작업중이시면 4.15.2 버전으로 업그레이드하신 다음 엔비디아 드라이버도 381.89 버전으로 업데이트하여, 이 버그를 최대한 빨리 해결할 수 있도록 도와주시기 바랍니다.
엔비디아 애프터매스에 대해 더 알아보고 싶으시다면, https://developer.nvidia.com/nvidia-aftermath 페이지를 방문해 보시기 바랍니다.