DXVK로 라데온 게임 성능을 높일 수 있다고? (추가: 스타2)

지포스에서도 구형 게임 성능 문제를 해결?

퀘이사존 QM크크리
57 5634 2021.07.21 16:19


퀘이사존



    안녕하세요. QM크크리입니다. 오늘은 윈도우에서 구형 게임, 특히 라데온 사용자들에게 필요하다고 하는 DXVK에 대해 알아보는 자리를 마련했습니다.


    ‘까탈리스트’의 전설을 아십니까? 아주 슬픈 전설이죠. 누군가는 전설 따위 믿지 않는다고 반박하고 싶을 수도 있겠지만, 대중은 바보가 아닙니다. 대중이 잘못 판단하는 경우가 물론 없는 것은 아닙니다. 그러나 대부분은 자신이 느낀 바를 정확히 표현하지 못하는 한계에 가까우며, 문제가 있으니 누군가가 느끼고 공론화를 시도하는 경우가 훨씬 더 많습니다.

    사실 자신의 감정, 특히 격한 감정을 차분히 표현하는 것은 상당한 수련을 요구하는 기술이며, 많은 사람에게 바라긴 어려운 일인 만큼 잘못된 표현이 더 많이 노출되는 것은 당연한 현상이기도 합니다. 그러나 표현상의 문제를 지적한다고 해서 대중이 느끼는 문제 그 자체가 사라지지는 않습니다.

    뭔가 확실히 안 되거나 고장 난 것은 아니지만, 아주 사소한 부분이라도 조금만 맞지 않으면 오류나 성능 저하를 수시로 맞닥뜨리게 될 때 대중은 ‘까탈스럽다’고 느낍니다. 그리고 마침 당시 AMD 라데온 그래픽 드라이버의 브랜드 명인 “카탈리스트(Catalyst: 촉매)”와의 발음상 유사성 때문에 마치 하나의 이명처럼 자리 잡은 것으로 보이기도 합니다. AMD가 “카탈리스트”란 이름을 버리고 라데온 소프트웨어 체계로 바꾼 지 6년 가까이 되어갑니다만, 라데온 소프트웨어 사용 중 뭔가 문제를 겪는 분들이 한번쯤 회자하는 이름이기도 합니다.

    물론 AMD가 이런 문제에 대해 마냥 손 놓고 있던 것은 아닙니다. 이미 문제가 생긴 제품이라도 드라이버 개선을 이루어내 ‘이제서야 손으로 만든 드라이버가 나왔다’는 평을 받기도 하고, AMD 라데온에 불리한 게임의 규칙 자체를 바꾸기 위해 맨틀Mantle API를 만들고 개방하여 다이렉트X12와 Vulkan API의 완성에 기여하기도 합니다. “레인보우 식스 시즈” 같이 Vulkan API를 옵션으로 지원하는 게임을 즐기시는 분이라면 Vulkan API가 가져오는 성능 향상을 쉽게 느낄 수 있거나 이미 느껴보셨을 것입니다.


 


퀘이사존


    RedGamingTech에서 Vulkan API를 개발한 크로노스 그룹(Khronos Group)을 인터뷰한 기사(바로 가기)에서도 맨틀Mantle에 기반하였고, AMD의 기여가 큰 도움이 되었음을 언급하고 있습니다.(“Based on Mantle”, “AMD had donated their Mantle API to Khronos to help”, “Mantle definitely got us off to a great start”)


    그러나 과거에 이미 출시된 게임들은 이러한 개선을 누리지 못하는 경우가 많습니다. 아니면 해결된 문제라도 새로운 설계의 최신 라데온 그래픽카드에서 다시 문제가 생기기도 합니다. “로스트아크”와 “어쌔신 크리드: 오리진”은 이런 문제가 잘 알려진 사례들입니다. 이에 대해 ‘향상된 동기화(Enhanced Sync)’ 기술을 쓰는 편이 오히려 성능이 잘 나온다던가(로스트아크 한정), DXVK를 쓰는 쪽이 차라리 나은 성능을 볼 수 있다고 하기도 합니다.

    ‘향상된 동기화(Enhanced Sync)’는 AMD와 NVIDIA가 만든 여러 동기화Sync 관련 기술 중 하나로 18년도에 프리싱크를 다룬 칼럼에서 소개해 드린 바 있고, 로스트아크 OBT 당시 벤치마크에서도 언급한 바 있습니다.


"FarCry5와 함께 AMD Radeon FreeSync(프리싱크)를 알아보자" 칼럼 바로 가기

" 퀘이사존, 로스트아크 OBT 74종 그래픽카드 벤치마크" 바로 가기


    그럼 DXVK는 뭘까요?

    사실 DXVK는 MS 윈도우가 아닌 전혀 다른 운영체제OS인 리눅스에서 윈도우용 게임을 구동하기 위한 변환기입니다. 리눅스에 관해 관심 있는 분들은 아시겠지만, MS 윈도우 전용으로 개발된 프로그램들을 리눅스(를 포함한 비 윈도우 환경)에서 쓰기 위해 WINE이라는 호환 계층을 사용합니다. 그리고 그 WINE의 게임 성능을 개선하기 위해 Vulkan API를 활용하고자 하는 세부 프로젝트가 DXVK입니다. 예, 조금 전 위에서 설명한 바로 그 Vulkan API이고, AMD의 맨틀 덕분에를 밝힌 Vulkan API입니다.

    그렇다면, MS 윈도우에서 윈도우용 게임을 구동하는 상황이더라도 AMD 라데온에 특별히 문제가 있는 게임이라면 ‘Vulkan API로 변환해 버리는 편이 낫지 않을까?’라는 생각을 충분히 해봄 직한 일입니다. ‘DXVK로 돌리는 게 낫더라’는 그러한 실험 정신과 시행착오 덕분에 알려진 팁이라 할 수 있습니다.

    추가로 Vulkan API와 DXVK 둘 다 현재는 NVIDIA 지포스 그래픽카드에서도 사용할 수 있으며, 일부 구형 게임의 성능 문제를 해결하는 데 도움이 될 수도 있다고 합니다. “로스트아크”와 “어쌔신 크리드: 오리진” 외에도 “킹덤 컴: 딜리버런스”, “GTA 4”, “보더랜드” 시리즈(“The Pre-Sequel” 및 그 이전 작품들), “더 위쳐 2: 왕들의 암살자”, “길드워 2”, “블레이드 앤 소울”, “어 햇 인 타임(A Hat in Time)”이 주로 거론되는 게임들입니다. 그 외에도 다이렉트X9만을 12로 변환하여 성능 향상을 꾀하는 d912pxy라는 프로그램도 있다고 합니다.(다만, 여기서는 다이렉트X9 외의 게임도 비교하기 위해 DXVK만을 사용하였습니다.)

    그렇다면 구체적으로 어느 정도의 성능 차이가 있는지 한번 알아보고 싶어지는군요!




퀘이사존


파일 두 개만 복사하면 됩니다. 원칙적으로는요……


    DXVK는 공개Open 소스로 개발되는 프로그램이기 때문에 깃허브의 공개 저장소에서 모든 것을 내려받을 수 있습니다. 일반 사용자는 배포 페이지에서 dxvk-0.0.tar.gz 하나만 내려받으면 됩니다.


DXVK 배포 페이지 바로 가기


    현재 최신 버전은 1.9 버전이니 해당 버전 설명 맨 아래에 있는 Assets에서 dxvk-1.9.tar.gz를 내려받으면 됩니다. 이전 버전이 필요하면 역시 해당 버전에서 dxvk-0.0.tar.gz를 내려받아 사용하면 됩니다. Tar.gz라는 확장자가 생소하게 느껴질 수도 있겠지만, 우리가 쓰는 zip과 비슷한 압축 형식이라고 생각하고 반디집 등의 압축 해제 프로그램으로 풀어놓으면 됩니다.

    압축을 풀어놓은 곳에 들어가면 setup_dxvk.sh란 파일과 x32, x64 두 개의 폴더를 볼 수 있습니다. setup_dxvk.sh는 원래 용도대로 리눅스에서 쓸 때 사용하는 설치 스크립트이니 신경 쓰지 않아도 됩니다. 우리에게 필요한 건 게임에 맞게 x32나 x64에 있는 파일 두 개를 복사해서 넣어주는 것입니다. 이를 위해 우선 게임이 실제로 어느 폴더에 있는지 확인해야 합니다.


 


퀘이사존

▲ 보안상 숨기지 않는 한 모든 윈도우 프로그램은 작업 관리자에서 위치를 알려줍니다.

오른쪽 클릭 메뉴에서 ‘파일 위치 열기’로 확인할 수 있습니다.

 

   작업 관리자에서 '(32비트)'나 'x86'이라는 언급이 있으면 x32 폴더, 그렇지 않을 경우 x64 폴더의 파일을 사용하면 됩니다. 해당 폴더에 들어가면 6개의 dll 파일들이 반겨줄 것입니다.




 퀘이사존


    이걸 그냥 전부 다 넣어도 된다면 차라리 편하겠지만, 아쉽게도 게임에 맞춰 두 개만 정확히 골라서 복사해야 합니다. 파일 이름으로 눈치채신 분들도 있겠지만, 어떤 파일이 필요한지는 게임이 사용하는 다이렉트X의 버전에 따라 다릅니다. 그중에서도 9, 10, 또는 11 버전을 사용한 게임들에 DXVK를 적용해볼 수 있습니다.




퀘이사존

 

    현재 최신 게임들은 대부분 다이렉트X12나 Vulkan을 사용합니다. 비교적 구형 게임들과 소수의 최신 게임들이 다이렉트X11을 사용하며, 극소수의 게임과 아주 구형 게임들이 다이렉트X10이나 9를 사용합니다.


    이를 확인하는 방법은 여럿 있습니다만, 가장 정확하면서도 편리한 방법은 MSI 애프터버너(MSI Afterburner)를 사용하는 것입니다. 구체적으로는 해당 프로그램에서 게임 성능 모니터링 등의 기능을 담당하는 RTSS(RivaTunerStatisticsServer)를 활용하는 방법이죠.




퀘이사존

 

    MSI 애프터버너를 실행한 상태에서 알림 영역 아이콘을 보면 RTSS 아이콘을 찾을 수 있습니다. 보이지 않을 경우 옆의 ⋏버튼을 통해 최소화된 아이콘 목록에서 찾을 수 있습니다.


 


퀘이사존 


    RTSS 설정 메뉴에서 왼쪽 아래의 Add 버튼을 Ctrl+왼쪽 클릭하면 현재 실행 중인 게임을 설정 프로파일에 추가할 수 있습니다.(참고로 Shift+클릭으로 추가하면 해당 게임에선 RTSS를 사용하지 않는 설정으로 추가해줍니다.)


    RTSS 설정에 게임을 추가할 때 속성Properties에 보여주는 Direct3D10 또는 12 같은 표기가 해당 게임이 사용하는 다이렉트X의 버전을 뜻합니다. 이 버전에 따라 아래와 같이 두 개의 파일을 사용하면 됩니다.

  •  DX9(Direct3D9): d3d9.dll과 d3d11.dll
  • DX10(Direct3D10): 현재 DX10까지만 사용하는 게임은 거의 없는 관계로 확인하기는 힘들지만, d3d10.dll, d3d10_1.dll, d3d10core.dll 셋 중에 하나와 d3d11.dll을 사용하면 될 것으로 보입니다.
  • DX11(Direct3D11): d3d11.dll과 dxgi.dll

    이렇게 두 파일을 게임이 있는 폴더에 복사하면 사용할 준비가 다 되었습니다. 그러나 여기서 주의할 점이 세 가지 있습니다.




퀘이사존

 

    여기서 테스트한 조합 중에서 최신 1.9 버전으로 정상 구동할 수 있었던 건 “스타워즈 배틀프론트 2(Star Wars Battlefront II)”를 AMD 라데온 그래픽카드에서 구동할 때뿐이었습니다.


    “로스트아크(LOST ARK)”는 1.8.1 버전, “어쌔신 크리드 오리진(Assassin's Creed Origins)”은 1.7.1 버전을 사용하여야 정상적인 구동을 할 수 있었고, “스타워즈 배틀프론트 2(Star Wars Battlefront II)”를 NVIDIA 지포스 그래픽카드에서 구동할 때는 사용한 모든 버전에서 실행이 불가능하였습니다.(시간상 역대 모든 버전을 테스트하는 건 제약이 있기 때문에 1.9, 1.8.1, 1.7.3, 1.7.1 버전만을 확인하였습니다.)

    따라서 DXVK 적용 후 게임이 정상 구동되지 않는다면 먼저 정확한 파일을 복사했는지 확인하고(파일을 잘못 골랐을 경우 거의 절대로 정상 구동할 수 없습니다), DXVK의 버전을 바꿔가면서 해당 게임에 맞는 버전을 찾는 과정이 필요할 것으로 보입니다.

    이는 DXVK가 각 게임이나 윈도우와 별개로 리눅스에서 개발되고 있기 때문이라 할 수 있겠습니다. DXVK 위키에서도 윈도우는 지원하지 않으며, 윈도우에 국한된 문제는 대응하지 않겠다고 명시하고 있습니다.(“Any issues that are exclusive to Windows will be ignored.”)


 


퀘이사존

 

    DXVK는 각 게임의 공식 지원과 무관하게 리눅스에서 게임을 실행하기 위해 API를 변환합니다. 이는 온라인/멀티플레이 게임에서 거의 항상 뜨거운 감자인 해킹/치트 방지 프로그램과 충돌할 수 있습니다. 이미 리눅스로 게임을 즐기는 사용자층에서 “오버워치” 등의 게임에서 차단당한 사례가 공유된 바 있습니다. 특히 EA가 배급하는 “배틀필드 V”의 경우 게임 정품을 정상적인 경로로 구매하고 반칙(치트) 행위를 저지르지 않았음에도 고객 센터에서 영구 차단을 해제하지 않겠다는 답변을 받아 논란이 되기도 하였습니다. BleepingComputer가 이를 보도하면서 EA 측에 연락하여 이 문제를 해결할 수 있는지 문의했지만, 답신을 받지 못했다고 합니다. “Linux Gamers Banned in Battlefield V if Using Wine and DXVK” – BleepingComputer (바로 가기) -

    DXVK 측에서도 이에 대해 알고 있으며, 자신의 책임하에 위험을 감수하고 사용할 것을 명시하고 있습니다.

  • “온라인 멀티 플레이어 게임: 멀티 플레이어 게임에서 Direct3D 라이브러리를 조작하는 것은 부정행위로 간주 될 수 있으며 계정이 차단될 수 있습니다. 이는 임베디드 또는 전용 멀티 플레이어 부분이 있는 싱글 플레이어 게임에도 적용될 수 있습니다. 자신의 책임하에 사용하십시오.(Online multi-player games: Manipulation of Direct3D libraries in multi-player games may be considered cheating and can get your account banned. This may also apply to single-player games with an embedded or dedicated multiplayer portion. Use at your own risk.)"

 


퀘이사존

▲ 이렇게 생긴 게 보인다면 시도하지 마세요.

이미지 출처: 유튜브 채널 NukemDukem (바로 가기)


    사실 배틀아이의 경우 게임 중 정지당할 걱정은 하지 않아도 됩니다. 입구컷으로 들어가지도 못하기 때문이죠.




퀘이사존


퀘이사존

 


 

퀘이사존


    반드시 발생하는 문제는 아니지만, 첫 적용 후 몇 분가량 성능이 더 떨어지거나 간헐적인 끊기는 스터터링 문제가 발생할 수 있습니다. 이건 셰이더 캐쉬(Shader Cache)를 다시 생성하기 때문에 자연스러운 현상입니다. 게임에 따라서는 명시적으로 셰이더 캐시 생성 진척도를 보여주며 대기하기도 합니다. 어느 쪽이든 완료될 때까지 기다렸다가 게임을 즐기시면 됩니다.

 


 

퀘이사존


백문이 불여일견: 백 번 듣는 것이 한 번 보는 것만 못하다


    성능 향상을 직접 확인하기 위해 이미 언급한 “로스트아크(LOST ARK)”, “어쌔신 크리드 오리진(Assassin's Creed Origins)”을 테스트하였고, 대조군으로 딱히 DXVK 언급이 없으면서 다이렉트X11과 12를 모두 지원하는 “스타워즈 배틀프론트 2(Star Wars Battlefront II)”도 테스트하였습니다. 그래픽카드는 양사의 현세대 하이엔드급 제품을 확인하기 위해 AMD Radeon RX 6800 XT와 NVIDIA GeForce RTX 3080 FE를 사용하였습니다.

    모든 테스트는 그래픽카드 성능을 최대한 반영하기 위해 4K 해상도(3840 x 2160)에서 가능한 가장 높은 그래픽 설정으로 진행하였습니다.

 



퀘이사존



 

퀘이사존



#1. 로스트아크(LOST ARK) – DXVK 1.8.1

 

    "로스트아크(LOST ARK)"는 OBT 당시 벤치마크(바로 가기)에서도 언급한 것처럼 공식 사양 표에 AMD 그래픽카드 제품을 아예 언급하지 않고 있으며, 구형 API인 다이렉트X9에 기반하고 있고, 수직 동기화 관련 이슈가 알려진 게임입니다. 이에 맞춰 DXVK를 사용한 경우(VK)와 향상된 동기화(Enhanced Sync)를 사용한 경우(ES)를 나누어 테스트하였습니다.

    또한, 구형 API에는 구버전 드라이버의 성능이 나은 경우도 많다는 점을 고려하여, 테스트 시행 당시 가장 최신 드라이버인 21.6.1 드라이버 외에도 6800 XT를 지원하고 AMD 홈페이지에서 손쉽게 구할 수 있는 버전 중 가장 구버전에 가까운 20.11.2 버전을 따로 테스트하여 집계하였습니다.


 


 퀘이사존

▲ 클릭하면 커집니다.(원본 크기로 보실 수 있습니다.)

향상된 동기화(Enhanced Sync)에는 알려진 문제가 있어서 전역 설정보다 개별 게임 설정에서 활성화하는 편이 좋습니다.




퀘이사존

▲ 클릭하면 커집니다.(원본 크기로 보실 수 있습니다.)


    “일부 게임과 시스템 구성에서 향상된 동기화(Enhanced Sync)가 활성화되면 검은 화면이 나타날 수 있습니다. 향상된 동기화(Enhanced Sync)를 사용하도록 설정한 상태에서 문제가 발생할 수 있는 모든 사용자는 임시 해결 방법으로 이 기능을 사용하지 않도록 설정해야 합니다.” – 21.6.1 하이라이트(바로 가기) -


    그나저나 이거 꽤 오래전부터 본 기억이 나서 확인해보니 20.2.2 드라이버부터 알려진 문제(Known Issues)에 올라와 있던 거네요. 그리고 이번에 나온 21.7.1 버전에서도 그대로입니다. 할말하않 빠른 해결을…바랍니다.


 


퀘이사존 


    로스트아크에서는 역시나 DXVK나 향상된 동기화 사용에 따른 성능 차이가 상당함을 볼 수 있습니다. 또한, DXVK가 아닌 원래 API(DX9)를 사용하는 상황에서는 최신 드라이버인 21.6.1보다 구버전인 20.11.2의 성능이 상대적으로 나은 점도 확인할 수 있습니다.

    결론적으로 1% 하위 프레임이 보여주는 안정적인 성능 여부로 판단하면 드라이버 버전과 관계없이 DXVK를 적용하고 향상된 동기화(Enhanced Sync)를 활성화한 조합(VK ES)에서 가장 좋은 성능을 발휘합니다.


 


퀘이사존 

 

    구버전 20.11.2의 성능을 100%로 하였을 때 최신 21.6.1의 상대적인 성능을 보면 드라이버 버전에 따른 성능 차이를 더 확실히 볼 수 있습니다. DXVK를 적용하고 향상된 동기화(Enhanced Sync)를 활성화한 조합(VK ES)에서는 거의 차이가 없는 결과가 나왔지만, DXVK만 사용한 경우(VK)에서는 1% 하위 프레임이 10%P 이상 떨어져 87.5%가 되는 결과가 나옵니다. 그리고 DXVK를 사용하지 않는 경우에는 평균 프레임이 85~87%가량으로 떨어지며 1% 하위는 대략 65~53%까지 떨어지는 결과입니다.


 


퀘이사존 


    동일 조건에서 DX9를 사용한 성능을 100%로 했을 때 DXVK의 상대 성능을 보면 그 성능 향상을 매우 뚜렷하게 볼 수 있습니다. 특히 최신 21.6.1 드라이버에서 가장 성능이 좋은 조합(VK ES)에서는 최신 드라이버의 성능 하락과 대조되어 150%P가 넘는 성능 향상을 기록하며, 이는 DX9의 2.5배를 약간 넘는 성능을 뜻합니다. 그런 문제가 없는 구버전 20.11.2에서도 가장 성능이 좋은 조합(VK ES)은 35.9%P에 달하는 성능 향상을 가져옵니다.



#1-2. 로스트아크(LOST ARK) – 7월 19일 다시 테스트

 

    로스트아크는 현재 여름 업데이트를 진행 중입니다. 이미 7월 7일과 14일 업데이트로 게임 내 여러 변화가 있었죠. 그래서 성능에도 어떤 변화가 있을까 싶어 7월 19일에 주요 조건들을 다시 테스트해 보았습니다. 하는 김에 이번에 나온 최신 드라이버인 21.7.1 버전을 사용하였습니다.


 


퀘이사존


    게임 버전과 드라이버 버전을 모두 바꾼 결과는 크게 다르지는 않습니다. DXVK 사용 시의 1% 하위 프레임이 약간 감소하였고, 향상된 동기화(Enhanced Sync)만 사용한 결과의 성능이 향상되었습니다. 평균 프레임은 소폭 상승했지만 DXVK와 대등한 수준이 되었습니다. 반면 1% 하위 프레임은 꽤 오른 편입니다만, 원래 결과가 워낙 낮다 보니 여전히 DXVK에 비해 매우 떨어지는 결과입니다.

    결론적으로 1% 하위 프레임이 보여주는 안정적인 성능 여부로 판단하면, 여전히 드라이버 버전과 관계없이 DXVK를 적용하고 향상된 동기화(Enhanced Sync)를 활성화한 조합(VK ES)에서 가장 좋은 성능을 발휘합니다.



#2. 어쌔신 크리드 오리진(Assassin's Creed Origins) – DXVK 1.7.1

 

    게임 내에서 번화한 대도시 중 하나인 알렉산드리아Alexandria에서 저장한 세이브를 불러온 후 특정 방향을 보고 있는 상황에서 동료인 세누를 호출하여 공중에서 둘러보는 도시의 모습을 통해 측정하였습니다. 세이브를 불러올 때마다 게임 내 시간이 다를 때도 있고 도시 내 NPC들의 움직임 등으로 인하여 측정 오차가 다소 있는 편입니다.

 



퀘이사존 


    역시 DXVK로 인한 성능 향상을 볼 수 있습니다. 다만 로스트아크와 달리 향상된 동기화(Enhanced Sync)는 큰 차이를 내지 않았으며, 기본 API(DX11) 사용 시에는 구버전 20.11.2보다는 최신 21.6.1 버전이 그나마 나은 성능을 보여줍니다.

    결론적으로 1% 하위 프레임이 보여주는 안정적인 성능 여부로 판단하면 드라이버 버전이나 향상된 동기화(Enhanced Sync)와 관계없이 DXVK를 적용할 때(VK, VK ES) 가장 좋은 성능을 발휘합니다.


 


퀘이사존 


    구버전 20.11.2의 성능을 100%로 하였을 때 최신 21.6.1의 상대적인 성능을 보면 드라이버 버전에 따른 성능 차이를 더 확실히 볼 수 있습니다. DXVK를 적용할 때(VK, VK ES)는 거의 차이가 없는 결과가 나왔지만, 기본 API(DX11)를 사용할 때에는 2.5~9.1%P의 성능 향상을 볼 수 있으며, 평균 프레임보다 1% 하위 프레임이 더 오릅니다.


 


 퀘이사존


    동일 조건에서 DX11을 사용한 성능을 100%로 했을 때 DXVK의 상대 성능을 보면 그 성능 향상을 매우 뚜렷하게 볼 수 있습니다. 평균 프레임은 측정 오차를 고려할 때 별 차이가 없는 결과라 할 수 있으나, 1% 하위 프레임에서는 일관되게 10~20%P가량의 성능 향상을 보입니다.



#3. 스타워즈 배틀프론트 2(Star Wars Battlefront II) – DXVK 1.9


    배틀프론트 2…참 말이 많았던 게임입니다. 초기 소액 결제 관련 논란 때문에 배급사 측의 해명 댓글이 게시된 사이트의 역사상 가장 많은 비추천을 받았다는 얘기라던가, CNN 뉴스에도 오르고, 크리스 리 美 하원의원이 '스타워즈의 껍데기 쓴 도박장'이라는 과격한 표현을 썼다던가 말이죠. 개인적으로는 DX12 사용 시 몇몇 야외 맵들에선 FHD(1080P) 해상도에서도 VRAM을 12GB씩 점유하고 프레임은 반 토막 난 기억이 강렬하게 남아 있습니다. 제가 쓰던 GTX 1080 Ti의 11GB VRAM으로는 버틸 수가 없어서 텍스처 설정만 중간Medium까지 내리거나 DX11로 설정해야만 원활한 플레이가 가능했습니다.


    여기서는 DX11과 DX12를 모두 지원하고, DXVK의 성능 향상에 대한 별다른 얘기가 없는 게임으로써 일종의 대조군으로 테스트하였습니다.


 


퀘이사존


    배틀프론트 2에서는 앞서 보여드린 로스트아크나 오디세이와 달리, DXVK 사용 시 일관되게 성능이 떨어지는 모습을 보입니다. 사실 멀쩡한 API를 다른 거로 번역하면 쓸데없는 추가 작업overhead이나 생기기 때문에 당연한 결과이기도 합니다. 반대로 성능이 오르는 쪽이 저 차이를 씹어 드실 만큼 문제가 많다고 봐야겠죠.

    오히려 특이한 건 게임 자체 DX12(다이렉트X12) 설정을 사용 시 DXVK보다도 성능이 더 떨어지는 결과가 나온 점입니다. 배틀프론트 2가 DX12 사용의 성능 향상이 적은 것으로 알려진 점을 고려하더라도, 일반적으로 AMD 라데온 그래픽카드에서는 DX12나 Vulkan을 사용할 수 있으면 쓰는 쪽이 유리하다고 알려진 것과는 정반대의 결과입니다. 17년도 출시 작이다 보니 당시 하드웨어에 맞춰 설계한 DX12 구현이 최신 6800 XT와 맞지 않는 것으로 보입니다.

    향상된 동기화(Enhanced Sync)는 일부 결과에서 성능 향상이 있는 것으로 보이나, 대부분 1프레임 전후의 차이라서 큰 차이는 아닙니다.

    결론적으로 1% 하위 프레임이 보여주는 안정적인 성능 여부로 판단하면 드라이버와 관계없이 게임 자체 DX11을 사용하면 됩니다. 굳이 소소한 성능 차이까지 따진다면 최신 드라이버에서 향상된 동기화(Enhanced Sync)를 적용할 때(ES) 가장 좋은 성능을 발휘합니다.

 



퀘이사존


    드라이버 버전 간 비교는 DXVK 사용 시에만 소폭의 성능 하락이 있었습니다. 나머지는 향상된 동기화(Enhanced Sync)를 사용하거나 DX12를 사용할 경우 성능 향상이 좀 더 커지는 경향을 보이는데, DX12에서 향상된 동기화(Enhanced Sync)를 사용할 경우 둘의 시너지 효과인지 평균 6%, 하위 1%는 4.3% 향상된 결과를 보입니다.


 


퀘이사존 

 

    동일 조건에서 DX11을 사용한 성능을 100%로 했을 때 DXVK의 상대 성능을 보면 그 성능 하락을 매우 뚜렷하게 볼 수 있습니다. 모든 측정 결과에서 10%P 전후의 성능 하락을 보입니다.

 



퀘이사존



#1. 로스트아크(LOST ARK) – DXVK 1.8.1


    로스트아크는 OBT 당시 벤치마크(바로 가기)에서도 언급한 것처럼 구형 API인 다이렉트X9에 기반하고 있으며, 지포스에서도 수직 동기화 관련 이슈가 알려진 게임입니다. 이에 맞춰 DXVK를 사용한 경우(VK)와 수직 동기를 강제 비활성화한 경우(NS)를 나누어 테스트하였으며, AMD의 향상된 동기화(Enhanced Sync)를 테스트한 만큼 이에 가장 가까운 패스트싱크(Fast Sync)를 사용한 경우(FS)도 테스트하였습니다.

    또한 구형 API에는 구버전 드라이버의 성능이 나은 경우도 많다는 점을 고려하여, 테스트 시행 당시 가장 최신 드라이버인 477.11 드라이버 외에도 AMD 쪽 테스트에 사용한 구버전(20.11.2)과 배포 시기가 가장 가까운 457.09 버전(2020년 10월 29일)을 따로 테스트하여 집계하였습니다.




퀘이사존

▲ 클릭하면 커집니다.(원본 크기로 보실 수 있습니다.)


    수직 동기화 설정이 다른 게임에 영향을 주지 않기를 원한다면 개별 프로그램 설정에서 조절하면 됩니다. 만약 목록에 나오지 않는다면 실행 파일을 찾아서 등록하면 됩니다. 실행 파일 위치를 찾기 어렵다면 위에서 적용 방법을 설명할 때 언급한 것처럼 작업 관리자를 통해 찾을 수 있습니다.



 

퀘이사존


    로스트아크는 지포스에서도 DXVK나 동기화 관련 설정 사용에 따른 성능 차이가 상당함을 볼 수 있습니다. 다만 라데온과는 달리 DXVK가 아닌 원래 API(DX9)를 사용하는 상황에서도 드라이버 버전에 따른 성능 차이는 크지 않으며, 수직 동기 설정만 조절해도 상당히 괜찮은 성능을 보입니다. 패스트싱크(Fast Sync, FS)는 DX9에서는 동기화 해제와 유사한 결과를 보이나, DXVK와 같이 적용할 경우(VK FS)에는 여전히 수직 동기화가 작동하는 듯한 결과를 보인 것도 특이한 점입니다.

    결론적으로 1% 하위 프레임이 보여주는 안정적인 성능 여부로 판단하면, 드라이버 버전과 관계없이 DXVK를 적용하고 수직 동기화를 강제 해제한 조합(VK NS)에서 가장 좋은 성능을 발휘합니다.


 


 퀘이사존


    라데온과 달리 드라이버 버전에 의한 차이는 거의 없는 편입니다. 다만 일부 조건에서 하위 1% 프레임이 향상되어 최대 9.4%의 차이를 기록했습니다.


 


퀘이사존 


    동일 조건에서 DX9를 사용한 성능을 100%로 했을 때 DXVK의 상대 성능을 보면 최대 60%P에 가까운 향상을 보입니다. 다만 패스트싱크(Fast Sync)와 같이 사용한 조합(VK FS)에서만 앞서 언급한 것처럼 수직 동기화가 여전히 작동하는 관계로 상대적인 성능 저하를 기록하였습니다.



#1-2. 로스트아크(LOST ARK) – 7월 19일 다시 테스트


    RX 6800 XT 결과에서 말씀드린 것처럼, 로스트아크는 현재 여름 업데이트를 진행 중입니다. 이미 7월 7일과 14일 업데이트로 게임 내 여러 변화가 있었죠. 그래서 성능에도 어떤 변화가 있을까 싶어 7월 19일에 주요 조건들을 다시 테스트해 보았습니다. 하는 김에 이번에 나온 최신 드라이버인 477.22 버전을 사용하였습니다.


 


퀘이사존

 

    게임 버전과 드라이버 버전을 모두 바꾼 결과는 크게 다르지는 않습니다. 일부 조건에서 약간의 변동이 보이긴 하나, 전반적인 경향은 그대로입니다. 결론적으로 1% 하위 프레임이 보여주는 안정적인 성능 여부로 판단하면, 여전히 DXVK를 적용하고 수직 동기화를 강제 해제한 조합(VK NS)에서 가장 좋은 성능을 발휘합니다.



#2. 어쌔신 크리드 오리진(Assassin's Creed Origins) – DXVK 1.7.1

 

    AMD 측정 결과에서 말씀드린 바와 같이, 게임 내에서 번화한 대도시 중 하나인 알렉산드리아Alexandria에서 저장한 세이브를 불러온 후 특정 방향을 보고 있는 상황에서 동료인 세누를 호출하여 공중에서 둘러보는 도시의 모습을 통해 측정하였습니다. 세이브를 불러올 때마다 게임 내 시간이 다를 때도 있고 도시 내 NPC들의 움직임 등으로 인하여 측정 오차가 다소 있는 편입니다.

 



퀘이사존 


    역시 DXVK로 인한 성능 향상을 볼 수 있습니다. 다만 로스트아크와 달리 동기화 관련 설정은 큰 차이를 내지 않습니다. 일부 조건에서 일관되지 못한 결과도 보이나, 측정 오차가 크다는 점을 생각하면 무시 가능한 수준입니다.

    결론적으로 1% 하위 프레임이 보여주는 안정적인 성능 여부로 판단하면 드라이버 버전이나 동기화 설정과 관계없이 DXVK를 적용할 때(VK, VK FS, VK NS) 가장 좋은 성능을 발휘합니다.




퀘이사존

 

    드라이버 버전 간 비교도, 측정 오차가 크다는 점을 생각하면 특별한 차이는 없는 편입니다.


 


퀘이사존

 

    동일 조건에서 DX11을 사용한 성능을 100%로 했을 때 DXVK의 상대 성능을 본 결과도, 측정 오차가 크다는 점을 생각하면 일관된 성능 향상을 보입니다. 평균 프레임은 5%P 전후, 하위 1% 프레임은 23%P 전후로 상승한 결과입니다.



#3. 스타워즈 배틀프론트 2(Star Wars Battlefront II) – DXVK 사용 불가




퀘이사존

 

    배틀프론트 2를 지포스에서 구동한 경우에는 사용한 모든 DXVK 버전(1.9, 1.8.1, 1.7.3, 1.7.1)에서 적용하면 실행할 수 없었습니다. 또한, DX12로 구동한 경우는 결과의 특수함 때문에 아래에 따로 설명하겠습니다. 결과적으로 비교할 게 거의 없는 모습입니다만, 굳이 소소한 차이까지 따지자면 최신 드라이버에서 DX11을 사용하는 편이 낫다는 결과입니다.


 


퀘이사존

 

    드라이버 간 성능 비교는 최대 4.3%의 성능 향상을 보입니다.



#3-1. 스타워즈 배틀프론트 2(Star Wars Battlefront II) – DX12


    마지막으로 DX12 측정 결과를 보여드리겠습니다만, 매우 혼란스러운 결과입니다. RX 6800 XT의 결과에서 말씀드린 것처럼 DX12를 사용할 때 야외 맵에서 거의 고정적으로 12GB의 VRAM을 요구하는 듯한 모습 때문에 테스트하게 된 게임인데, 그 때문이라 할 수 있습니다.

    조금 더 구체적으로 말씀드리자면, 최대 부하와 변인 통제를 위해 다음과 같은 조건으로 테스트한 것입니다.

  • 멀티플레이 게임을 AI NPC들과 함께 싱글플레이로 즐기는 인스턴트 액션(INSTANT ACTION)을 사용
  • 야외 맵인 SCARIF BEACH를 반란군 돌격병(Rebel Alliance Assault)으로 진입하여 저녁 시간대 석양이 비칠 경우 아군들이 달려 나가는 걸 몇 초 정도 기다리고 나서 1분간 측정, 낮 시간대일 경우 바로 나와서 다시 진입.
  • 두 번 측정할 때까지 반복한 후 결과를 집계


    다른 모든 경우 두 번의 측정이 오차를 고려할 때 같은 결과가 나왔습니다만, RTX 3080에서 DX12를 사용할 경우에만 극적인 성능 저하가 나타났습니다. 또한 가장 성능이 잘 나온 경우에도 DX11 대비 반 토막 난 성능을 보입니다. 이미 첫 실행 시에 VRAM 사용량을 초과한 상황에서 저녁 시간대를 측정하기 위해 반복 진입하는 것이 문제가 된 상황이라 할 수 있습니다. 또한 낮 시간대나 실내 맵에서는 문제가 발생하지 않거나 훨씬 적게 발생합니다. 야외 맵 특유의 넓은 공간에, 석양에 비치는 그림자를 그리기 위한 추가적인 부하가 문제를 일으킨다고 할 수 있는 상황입니다.


    그래서 RX 6800 XT에서 같은 게임 결과를 보여드릴 때와는 달리 DX12만의 결과를 따로 모아서 보여드립니다.

    참고로 VRAM이 12GB인 RTX 3080 Ti는 거의 영향받지 않으며, RX 6800 XT 역시 VRAM이 16GB라 비슷한 문제가 생기지는 않았습니다.


 


퀘이사존

 

    결과적으로 각각의 성능 차이가 의미가 있다고 할 수 없으며, 성능 저하가 크다고만 받아들여도 될 것으로 보입니다. 따라서 드라이버 버전 차이나 동기화 옵션에 따른 분석은 하지 않겠습니다.




퀘이사존


    이건 이왕 테스트해본 김에 재미로 집계해본 것입니다. 각 게임에서 양사의 그래픽카드 별로 가장 성능이 나쁘게 나온 경우와 가장 좋게 나온 경우만을 따로 모아보았습니다. 기준은 하위 1% 프레임으로 하되 같은 경우에만 평균 프레임으로 선정하였습니다. 다만 배틀프론트 2만은 DX12에서 일관적인 성능 저하를 보인 데다가 RTX 3080에서 워낙 괴이한 성능 저하를 보인 관계로 이를 배제한 집계와 포함한 집계를 모두 작성하였습니다.

    동등 조건 비교가 아니라 각 게임의 특성이나 문제점을 보여주는 결과에 가까우므로 재미로 참고만 하시는 것이 바람직하겠습니다.


 


퀘이사존 




퀘이사존




퀘이사존

▲ 위에서 말씀드린 대로 DX12를 제외한 집계입니다.




퀘이사존

▲ DX12 포함 시 RTX 3080 최악의 경우 한 자릿수 프레임으로 성능이 폭락합니다.




퀘이사존


    칼럼에 대한 관심 및 반응 감사드리며, 댓글에 "스타크래프트 2"에 대한 언급을 보니 저도 궁금해져서 한번 테스트해봤습니다.


    ※ 주의: 본 테스트 직전 테스트 시스템 CPU 교체로 i9-11900을 사용하게 되었으며, 사양이 다른 만큼 기존 테스트와 동일선상에서 비교할 수 없는 점 유의바랍니다. DXVK 1.9 버전을 적용한 결과이며, 드라이버는 지포스 471.22 핫픽스, 라데온 21.7.1버전을 사용하였습니다.




퀘이사존


    1인 커스텀 캠페인을 통해 확인한 결과 지포스는 DXVK 사용 시 성능이 떨어지는 반면, 라데온은 전폭적인 향상으로 지포스와의 성능 격차를 거의 따라잡는 모습을 보입니다. 지포스 DX9의 성능을 100% 기준으로 환산하면 라데온 DX9는 평균 프레임 기준 지포스의 약 73%(146.2 vs 107.1), 하위 1% 프레임은 약 80%(91.9 vs 73.9) 정도에 불과합니다. 반면, 라데온만 DXVK를 사용(지포스는 DXVK 사용 시 성능이 떨어지므로 DX9로 비교)할 경우에는 평균 프레임 기준 지포스의 약 97%(146.2 vs 141.8), 하위 1% 프레임은 약 98%(91.9 vs 89.8) 정도가 되어 성능 격차가 극적으로 줄어듭니다.


    결과적으로 라데온에서만 DXVK의 이득을 보는 경우를 확인한 셈이 되었습니다.




퀘이사존


■ 제약이 있긴 하지만, 필요한 게임에서는 충분히 활용할 가치가 있습니다
    DXVK 적용은 익숙하지 않은 사용자에게는 다소 어려운 일입니다. 게임 파일의 위치와 사용 API 버전을 확인하고, 치트 방지 프로그램과 충돌하지 않는지를 확인한 후에 해당 게임에서 정상 구동이 되는 버전을 찾아서 적용해야 합니다. 그러나 이를 통해 성능 향상을 얻을 수 있는 게임들에서는 충분히 노력을 기울일만한 가치가 있습니다. 특히 AMD 라데온 그래픽카드 사용자들은 특정 게임에서 최대 2.5배에 달하는 성능 차이를 맛볼 수 있습니다. 해당 조건이 최신 드라이버로 구형 API 게임을 구동할 때라는 점을 생각하면, 구형 게임 때문에 최신 드라이버를 쓰지 못하고 발목 잡히는 현상을 해결해 준다고도 할 수 있습니다. 여러 종류의 게임을 다양하게 즐기는 분들은 구형 게임의 성능 문제 때문에 최신 드라이버를 쓰기 힘들고 최신 게임에서 상대적인 성능 손해를 보는 경우도 많은데, 이 문제를 피하는 방법이 될 수 있습니다.


■ 커뮤니티가 함께 한다면 구형 게임 환경을 개선할 수도 있을 것입니다
    자신이 즐기는 게임이 구형 API, 특히 다이렉트X9을 사용하고 있고 그 때문에 최신 그래픽카드의 성능을 다 쓰지 못한다고 의심이 간다면, DXVK 사용을 한 번쯤은 생각해보는 것도 좋겠습니다. 그리고 이미 효과를 보고 계신 분들은 자신의 설정, 특히 DXVK 버전을 커뮤니티에 공유한다면 각 게임과 드라이버의 발적화를 넘어서 모두의 게이밍 환경을 조금 더 좋게 만들 수 있지 않을까 싶습니다.





퀘이사존의 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 4.0 국제 라이선스에 따라 이용할 수 있습니다.​

댓글: 57

신고하기

신고대상


신고사유

투표 참여자 보기