출처: https://blog.naver.com/vtmbloodline/222221820412
본문에도 어느정도 언급이 있지만, 원래 리눅스에서 윈도우용 프로그램 돌리는 Wine용으로 개발된 물건입니다만, dll 파일만 게임 폴더에 집어넣는 식으로 윈도우 게임에서도 사용 가능합니다.
프로젝트 위키: https://github.com/doitsujin/dxvk/wiki
그리고 원래 성능 향상을 위한 프로젝트가 맞습니다.
https://linuxconfig.org/improve-your-wine-gaming-on-linux-with-dxvk
"Add DXVK to an existing Wine prefix, improving performance. "
리눅스에는 DirectX가 없으므로 이를 OpenGL로 변환해서 돌려야 되는데, 이 변환을 최신 API인 Vulkan으로 바꿔서 성능을 올려보자는 거죠. (Vulkan 자체가 뭔지 궁금하시면 Vulkan API로 구글링 해보시면 됩니다.)
그리고 이 변환을 통해 DX11 이하 게임 + 라데온 드라이버의 최적화 문제를 우회해볼 수 있다는 얘깁니다. 옛날 게임이거나 라데온 드라이버에 특별히 문제가 있는 게임일수록 향상을 기대할 수 있는 반면, 드라이버 대응이 제대로 된 상황에서는 성능이 떨어질 확률이 높습니다.(원래 API를 다른 걸로 변환하는 방식이기 때문)
---------------------------------------------------------------------------------------------------------------------------------------------
라데온은 DirectX 11에서 드로우콜이 너무 높아서 게임 엔진과 드라이버에서 특별히 신경을 써주지 않는 경우 성능 발휘가 잘 안되는 경우가 간혹 있다. 코어 하나에 드로우콜이 집중되어서 그런 것인데 엔비디아는 멀티스레드로 이 문제를 완화한 것으로 알려져 있다. AMD는 맨틀이라는 새 API를 만들어서 이 문제를 해결했는데 이게 지금 DirectX 12와 Vulkan의 전신이다.
리눅스 사용자가 워낙 소수라 잘 알려지지 않았는데 DirectX 타이틀을 Vulkan으로 번역해서 돌리는 프로젝트가 있다. AMD가 드라이버 소스를 공개했기 때문에 라데온에서만 가능하다. 성능향상을 위한 프로젝트도, 윈도우 사용자를 위한 프로젝트도 아니지만 윈도우에서도 우연히 성능향상이 목격되는 사례가 몇개 있다.
개인적으로 3년여동안 게임 20개 가량에 적용해봤는데 실행이 안되거나 성능향상이 없거나 오히려 성능이 떨어지는 경우가 대부분이었다. 그중에서 나한테 크게 도움이 됐던 타이틀 2개를 꼽으면 어썌신 크리드: 오리진과 킹덤컴: 딜러버런스였다.
어쌔신 크리드: 오리진은 드라이버 문제라기보다는 게임 자체가 라데온으로 테스트를 전혀 하지 않아서 드라이버로 손을 쓸 수가 없는 것 같다. 어쨌든 내가 지금까지 적용해본 타이틀중에서는 DXVK로 성능향상이 가장 돋보였다. 흰색이 Vulkan, 녹색이 DirectX 11이다. 성능도 크게 나아졌고 프레임도 안정적이다.
어쌔신 크리드: 오디세이에서는 AMD가 Ubisoft와 협업해서 이 문제를 완화했다. 레딧에 따르면 오디세이에서도 DXVK가 효과가 크다고 하는데 아마 CPU에 따라 편차가 클 것이다. 3900X와 5800X에서는 효과가 없거나 오히려 성능이 떨어졌다. 쿼드코어급 CPU에서는 성능향상이 있을지도 모르겠다.
그 다음으로 성능향상이 돋보인 게임으로 킹덤컴: 딜리버런스이다. 내가 저번에 6800으로 테스트해보니 성능이 낮다고 했었고 Hardware Unboxed에서도 6800이 3070보다 성능이 지나치게 낮아서 드라이버 문제라고 지적했었다.
라데온 7 사용할 때 별 문제가 없었고 5700 XT 사용자에 따르면 RX 580보다 성능이 떨어졌다고 하는 것을 보면 GCN에서는 이 문제가 없었는데 RDNA 기반 카드에서 전반적으로 성능이 지나치게 낮은 모양이다. 이 게임에서도 DXVK 효과가 컸다.
다행히도 저번주에 출시된 아드레날린 21.1.1로 킹덤컴에서 낮은 성능 이슈가 해결됐다. 지금은 DXVK로 돌리는 것보다 네이티브 DirectX 11이 조금 더 빨라서 쓸 이유가 없다.
내가 해보지는 않았지만 GTA 4와 보더랜드 1, 2, 프리퀄에서도 성능향상이 크다고 한다.
다시 한 번 강조하지만 대부분의 게임에서는 실행이 안되거나 이미 게임 개발사나 AMD 드라이버 차원에서 게임별 최적화를 끝냈기 때문에 번역과정을 거치면 오히려 성능이 떨어진다. 최적화가 엉망인 극소수 일부 타이틀에서만 성능향상이 있을 것이다.
https://github.com/doitsujin/dxvk/releases
Releases · doitsujin/dxvk
Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine - doitsujin/dxvk
github.com
설치 방법
2021년 1월 기준 최신 버전 1.7.3을 다운받는다.
x64 폴더에서 d3d(버전명).dll과 d3d11.dll 두 파일을 게임 실행 파일이 있는 곳에 붙여넣는다.
셰이더 캐시가 만들어지는 10-20분동안 심각한 마이크로스터터링이 발생하는데 정상이다. MSI 애프터버너도 크래시 주범이니 끄는 것이 좋음.
dll 파일 변조로 의심받을 수 있으니 멀티플레이 게임과 Valve Anti-Cheat를 사용하는 CSGO 같은 게임에서는 사용하지 않는 것이 좋음.