04
11

엘든링 스터터링 해결 게임 최적화 방법

엘든링을 플레이 해보면 스터터링이 심각하다.

엘든 링의 최적화가 엉망인지 개적화라고 유저들이 욕한다.

그러므로 엘든 링의 스터터링을 해결할 방법을 알아보자.

이 방법은 엘든 링 말고 다른 게임도 사용할 수 있다.

 

 

우선 파일을 다운받는다

 

 

GitHub - doitsujin/dxvk: Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine

Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine - GitHub - doitsujin/dxvk: Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine

github.com

여기에서 최신버전 파일을 다운받아 .tar.gz파일 압축을 풀어 dxgi.dll을 준비한다

 

 

 

 

GitHub - HansKristian-Work/vkd3d-proton: Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation.

Fork of VKD3D. Development branches for Proton's Direct3D 12 implementation. - GitHub - HansKristian-Work/vkd3d-proton: Fork of VKD3D. Development branches for Proton's Direct3D 12 implemen...

github.com

그리고 여기에서 최신버전을 받아 tar.zst 파일 압축을 풀어 d3d12.dll 파일을 준비한다.

tar.zst 파일의 경우 압축파일 확장자로 등록되어 있지 않으면 우클릭 후 연결 프로그램을 클릭 후 반디집을 클릭해 압축을 풀어준다.

 

 

dxgi.dll
1.97MB

 

d3d12.dll
2.52MB

혹시 몰라 위에 두 파일을 준비했다. 다운받으면 된다. 그러나 위 두 파일은 구버전이니 되도록이면 위의 깃헙 링크에서 파일을 받도록 하자.

 

그 후 위의 dxgi.dll과 d3d12.dll 두 파일을 엘든링의 실행 파일이 있는 폴더에 복사 후 붙여넣기 한다.

그다음에 엘든링을 실행하면 약간의 시간이 흐른뒤 실행된다.

 

게임을 처음 실행한 초반에는 셰이더 컴파일 문제로 오히려 기존보다 더한 버벅임을 보이기도 하지만 어느 정도 시간이 지나 셰이더 컴파일이 충분히 쌓이면 기존과 같은 스터터링은 더 이상 발생하지 않는다

 

 

이렇게 위와 같이 적용하고 나면 스터터링이 줄어들었을 것이다.

 

스터터링의 원인이 밝혀진 것으로 DirectX 12로 실행되는 프로그램을 강제로 Vulkan으로 구동시키는 VKD3D-Proton(DXVK의 변종)을 이용하는 것.

엘든링이 DX12를 이용하는 게임인데 최적화가 안좋다 보니 불칸으로 강제 실행시키는 방법이 위 방법이다.

 

다른 다이렉트X 11 게임 또한 DIVK 깃허브에서 d3d11.dll 와 dxgi.dll 가 압축파일 안에 있으니 이 두 파일을 실행파일이 있는 폴더에 복사하면 된다.

 

DX9(Direct3D9) : d3d9.dll과 d3d11.dll

DX10(Direct3D10) : d3d10.dll, d3d10_1.dll, d3d10core.dll 셋 중에 하나와 d3d11.dll을 사용

DX11(Direct3D11) : d3d11.dll과 dxgi.dll

DX12(Direct3D12) : d3d12.dll과 dxgi.dll (엘든링의 경우)

 

이미 리눅스와 스팀덱으로 엘든링을 하는 경우 리눅스를 사용하여 프로톤이나 WINE으로 다이렉트x 12를 불칸으로 변환하여 사용해 스터터링을 없애고 쾌적하게 게임을 하고 있다

위의 방법은 정상적이지 않은 방법으로 윈도우에서 위의 리눅스 변환 방법을 응용해서 실행한 것이다.

 

되돌리는 방법은 위의 두파일을 삭제하고 생생된 쉐이더 캐시파일도 삭제하면 된다.

 

 

dxvk는 다이렉트x 를 후킹해서 vulkan api로 돌려주는 프로그램임.

원래 리눅스 os에서 여러 게임들을 돌리려고 쓰는건데 윈도우 os에서 써도 별 문제 없음.

이걸 쓰면 예전 게임들이나 개적화 게임들 프레임 향상에 도움 되는 경우가 많다고 함.

현재도 활발하게 업데이트 중임.

다이렉트11 게임은 x64폴더 속 dxgi.dll, d3d11.dll을

다이렉트9 게임은 x32폴더 속 dxgi.dll, d3d9.dll을 해당 게임 실행루트에 넣으면 됨.

 

윈도우 10에서 프레임 향상이 확인 된 게임들

--> 보더랜드2, gta4, 구 베데스다 게임들(오블,폴3,뉴베), 어쌔신크리드 오리진, 그 외 다수

 

주의)

1.무작정 아무 게임에나 적용하면 오히려 프레임이 떨어질 수도 있음

2.적용하고 처음 10분~ 20분, 새로운 지역에 입장 시 게임이 끊기는데(스터터링) 이게 쉐이더 캐시를 만드느라 그러는 것임. 지극히 정상적인거고 시간이 지나거나 일부러 여러 지역을 돌아다녀서 쉐이더 캐시가 어느정도 형성이 되면 완화됨.

3.폴아웃3와 뉴베가스 둘 다 FOJP를 사용하는 최신 한글패치와는 호환이 안 됨. 구 버전 한글패치를 사용 해야함.

4.dxvk 사용 시, 드라이버 패널의 fxaa 기능과, sweetfx, 리쉐이드의 안티앨리어싱 기능이 작동 안 될 수도 있음.

--> sweetfx 의 안티앨리어싱과 dxvk를 함께 쓰는 방법 (gta4 플레이시 강추)

 

 

Antialiasing with DXVK and GTA IV

GTA IV stutter lag fix, movies, music, stock market

ant-sh.blogspot.com

 

위:일반

아래:dxvk를 이용해서 vulkan으로 게임을 돌렸을 떄

 

 

 

Valve does what FromSoftware don’t, thanks to Steam Deck’s precaching update

Cool feature on Steam's desktop client gets new life on static Deck hardware.

arstechnica.com

 

다만 프롬의 공식 패치가 아닌 어디까지나 유저들에 의한 임시방편인 만큼 안티 치트와 충돌이 발생할 수도 있는 등 예상치 못한 문제가 생길 수도 있다.

 

이러한 문제는 제작사의 전작인 다크 소울 3나 세키로에서도 발생했던 문제인데 프롬 소프트웨어가 가진 기술력의 한계와 더불어 엔진의 고질적인 결함점이 게임의 스케일과 개발 극후반에 뚜껑이 열린 서버 이슈 탓에 뒤늦게 추가한 것으로 추정되는 안티 치트와 시너지를 일으키고 만 것으로 보인다.

 

디지털 파운드리에 따르면, PC판 엘든 링에서 사양과 관계없이 화면에 새로운 파티클 효과나 적 등이 나타날 때마다 스터터링이 발생하는 것이 관찰되며, 이는 실시간 셰이더 컴파일 때문에 그럴 수 있다고 한다. 이러한 스터터링은 게임을 진행할수록 더 적어질 수 있으나 게임을 재설치, 업데이트하거나 그래픽 드라이버를 업데이트하면 다시 발생할 수 있다고 한다. 여기에 더해 맵 로딩에 따른 심한 스터터링도 발생한다고 한다.

 

이 정도로 심각한 실시간 셰이더 컴파일 문제는 Cemu, Citra와 같은 에뮬레이터에서나 볼 수 있는 문제로 일반적인 PC 게임에서는 거의 찾아볼 수 없는 현상이다. 에뮬레이터의 경우는 원래 PC 게임이 아닌 것을 억지로 PC로 구동하는 것이다 보니 기술적 부족 때문에 이런 현상이 발생하는 거지만 일반적인 PC 게임의 경우는 당연히 이런 문제가 발생하지 않도록 처음부터 설계를 한 상태로 게임이 개발되기 때문.

 

참고로 Cemu는 거듭된 업데이트로 Vulkan으로 플레이할 시 셰이더 컴파일로 인한 스터터링이 거의 체감되지 않을 정도까지 왔다. 그러니까 PC에 정식 발매된 게임이 일개 에뮬레이터만도 못하다는 얘기다.

 

디지털 파운드리는 PC판 엘든 링의 스터터링이 너무 심해 가변 주사율(G-SYNC/FreeSync)을 사용해도 해결이 불가능하다고 결론을 내렸다.

 

콘솔판 역시 심각하다. 전 기기에서 퍼포먼스 모드를 설정하더라도 스터터링, 프레임 드랍이 발생하며, 특히 XBOX 버전에서 타 플랫폼 대비 로딩 시간이 2배로 늘어지고 XSX 버전조차 PS5 대비 평균 프레임이 10프레임 가량 떨어지면서 전력을 150~180W밖에 먹지 않는 기적의 발적화를 보여주었다.

 

또한, XSX에서 XOX버전을 하위호환으로 돌렸는데, 대놓고 풀 등의 오브젝트가 훨씬 듬성듬성한게 확인됨에도 불구하고 XSX 품질모드로 돌린것보다도 프레임이 나오지 않는 현상까지 발견되었다. 개발자가 해상도를 고정하지 않고 가변해상도로 설정해서 네이티브 4K까지 올라가는 것이 문제로 의심된다.

 

현재 이 문제가 발생하는 원인으로는 프롬소프트가 DirectX 12를 제대로 다뤄내지 못해 셰이더 컴파일에 문제가 생긴 것으로 의견이 좁혀진 상황이다. 이를 증명하듯이 밸브가 스팀덱을 위해 리눅스 구동 최적화 작업을 진행하면서 셰이더 프리캐시를 도입, PC판에서 발생하는 문제가 해결되었기 때문이다.

 

 

발매 후 몇 번의 패치로 게임 실행 불가나 진행 불가 수준의 버그는 완화되었으나 셰이더 컴파일로 인한 스터터링(스팀덱 제외)이나 강제 60프레임으로 인한 간헐적인 프레임 드랍 이슈는 여전하다.

COMMENT
 

인기 글


최근 글