DXVK 2.7: 향상된 지원, 최적화된 설명자 관리 및 조각 모음

DXVK-1

몇일전 발표된 DXVK 2.7 신규 버전 출시어느 Vulkan에 대한 개선 사항을 소개합니다. 확장 기능과 드라이버 모두 개선되었으며, VRAM 관리, 호환성 수정 등이 이루어졌습니다.

DXVK에 대해 모르는 분들은 다음 사항을 알아두시기 바랍니다. Wine을 사용하여 Linux에서 3D 응용 프로그램 및 게임을 실행하는 데 사용할 수 있습니다. OpenGL 기반 Wine 기반 Direct3D 11 구현에 비해 더 높은 성능을 제공하는 대안으로 작용합니다. 일부 게임에서는 Wine + DXVK 패키지의 성능이 Windows 버전과 10~20% 정도만 차이가 나는 반면, OpenGL 기반 Direct3D 11 구현을 사용할 때는 성능이 훨씬 더 크게 저하됩니다.

DXVK 2.7의 주요 새로운 기능

DXVK 2.7의 주요 변경 사항 중 하나는 다음과 같습니다. VK_KHR_maintenance5 확장 설정 필수 요구 사항으로. 이는 다음을 의미합니다. 드라이버는 Vulkan 1.3을 완벽하게 지원해야 합니다.. 그 결과 DXVK는 더 이상 이전 드라이버 버전에서는 작동하지 않습니다. AMD 및 Intel GPU(RADV 및 ANV)의 경우 Mesa 25.0이 필요하고, NVIDIA 드라이버 550.54.14가 필요합니다.

이 변화 이 문제는 특히 AMD Polaris 및 Vega 그래픽 카드를 사용하는 Windows 사용자에게 영향을 미칩니다., AMD에서 더 이상 공식적으로 지원하지 않습니다. 이번 릴리스부터 DXVK는 AMD 드라이버가 설치된 Windows 플랫폼 사용에 따른 모든 책임은 사용자에게 있습니다.

DXVK 2.7의 또 다른 새로운 기능은 다음과 같습니다. 셰이딩 설명자 시스템의 현대화. AMD 또는 NVIDIA GPU 사용, DXVK는 기본적으로 VK_EXT_descriptor_buffer 확장을 활성화합니다.CPU가 그래픽 리소스를 관리하는 데 필요한 작업을 대폭 줄여주는 기술입니다. 이 개선 사항은 까다로운 게임에서도 확실한 성능 향상을 가져옵니다.특히 CPU가 병목 현상인 시스템에서이 최적화를 비활성화하려는 사용자를 위해 dxvk.enableDescriptorBuffer 옵션이 포함되었습니다.

DXVK 2.7 또한 메모리 사용량도 향상됩니다. 인텔 카드에서 배틀메이지와 루나레이크에서 메모리 조각모음 기능이 활성화되었습니다. 이 기능은 장시간 게임 세션 동안 최대 RAM 사용량을 줄여 운영 체제에 더 많은 리소스를 제공합니다. 이 기능은 dxvk.enableMemoryDefrag 옵션을 사용하여 제어할 수 있습니다.

또한, 전용 GPU에서 DXVK는 드라이버가 보고한 VRAM 제한을 최대한 적용하여 사용되지 않는 리소스를 더욱 효율적으로 해제합니다. 이를 통해 Unity로 개발된 게임, 특히 비디오 메모리가 제한된 기기에서 더욱 원활한 게임 플레이가 가능합니다.

코드 정리 및 타겟 개선

더 깨끗하고 현대적인 코드를 유지하기 위한 노력의 일환으로 더 이상 사용되지 않는 기능이 제거되었습니다. 예를 들어 d3d9.forceSwapchainMSAA 옵션과 VK_EXT_graphics_pipeline_library 확장이 도입된 후 더 이상 사용되지 않는 레거시 상태 캐시 등이 있습니다.

또한 안정성과 성능을 개선하기 위해 특정 최적화가 통합되었습니다. Direct3D 11에서 버퍼와 변수를 자동으로 채워 셰이더를 더 안전하게 초기화할 수 있을 뿐만 아니라 Source 엔진 기반 게임도 지원합니다.

버그 수정 및 개선 사항:

  • 평면 비디오 출력 뷰에 대한 지원이 추가되었습니다.
  • D3D11 셰이더는 이제 정의되지 않은 동작을 유발하는 게임 버그를 방지하기 위해 기본적으로 모든 변수와 그룹 공유 메모리를 XNUMX으로 초기화합니다.
  • Source Engine에서 발생하는 특정 멀티 샘플 확인 사례에서 D3D9의 StretchRect 사용을 최적화했습니다.
  • D3D11 비디오 API를 사용하는 Modulus 및 기타 Unity Engine 게임에서 Vulkan을 잘못 사용하는 문제를 수정했습니다.
  • ID3DDestructionNotifier 인터페이스에 대한 지원이 구현되었습니다.
  • DXVK를 실행하는 데 필요한 기능이 없는 Vulkan 장치는 더 이상 DXGI/D3D9 어댑터로 나열되지 않습니다.
  • 이제 AVX가 활성화된 MinGW 환경에서 DXVK를 컴파일하려고 하면 컴파일 타임 오류가 발생합니다.

DXVK 지원을 추가하는 방법은 무엇입니까?

Linux에 DXVK를 설치하는 방법은 배포판과 Wine, Proton, Lutris 중 무엇을 사용하는지에 따라 약간씩 다를 수 있지만, 여기서는 가장 일반적인 경우에 대한 가이드를 제공합니다.

Wine으로 DXVK 설치

DXVK는 공식 GitHub 페이지에서 다운로드할 수 있습니다. 최신 .tar.gz 파일(이 경우 버전 2.7)을 다운로드하세요.

wget https://github.com/doitsujin/dxvk/releases/download/v2.7/dxvk-2.7.tar.gz

지금 다운로드 한 후 방금 얻은 패키지의 압축을 풉니 다. 다음 명령을 실행하여 데스크톱 환경이나 터미널 자체에서이 작업을 수행 할 수 있습니다.

tar -xvf dxvk-2.7.tar.gz cd dxvk-2.7.tar.gz

Wine 접두사에 DXVK를 설치하세요

~/.wine에 Wine 접두사를 사용한다고 가정합니다.

export WINEPREFIX=~/.wine ./setup_dxvk.sh install

이렇게 하면 필요한 DLL 파일(d3d9.dll, d3d10.dll, d3d11.dll, dxgi.dll)이 접두사 내의 system32 및 syswow64 폴더에 복사됩니다.

Lutris로 설치하기(더 쉬움)

Lutris를 열고 게임을 선택하세요:

  1. 마우스 오른쪽 버튼 클릭 > 구성 > 러너 옵션 탭.
  2. "DXVK 사용" 상자를 체크하세요.
  3. 거기에서 원하는 DXVK 버전을 선택할 수 있습니다.
  4. 변경 사항을 저장하고 게임을 실행합니다.

Steam에 설치(Proton 사용)

Steam Play(Proton)를 사용하는 경우:

  1. 모든 타이틀에 대해 Steam Play를 활성화하세요:
  2. Steam > 설정 > 호환성 > Steam 재생 강제 실행.
  3. Proton에 포함된 DXVK 버전을 사용자 정의 버전으로 바꿀 수 있습니다(무엇을 해야 할지 아는 경우가 아니면 권장하지 않습니다).
  4. 아니면 Proton이 DXVK를 자동으로 관리하도록 하세요. 이 기능은 기본적으로 내장되어 있습니다.

DXVK가 작동하는지 확인하세요

DXVK가 활성화되어 있는지 확인하려면 게임을 실행하고 게임이 실행 중인 폴더를 확인하세요. d3d11.log나 dxgi.log와 같은 파일이 보이면 DXVK가 올바르게 실행되고 있는 것입니다.

DXVK HUD와 같은 도구를 사용하여 화면에 통계를 표시할 수도 있습니다.

DXVK_HUD=1을 내보냅니다

Wine이나 Lutris로 게임을 실행하기 전에 이 변수를 설정하세요.