
D7VK 2.1이 새롭게 출시되었습니다. 이 오픈 소스 그래픽 변환 레이어는 Direct3D 7, 6, 5, 3 기반의 구형 Windows 게임을 Vulkan에서 실행할 수 있도록 해줍니다. 이전 버전 에서 상당한 성능 향상을 이뤄낸 데 이어, 이번 업데이트는 게임 로딩 및 시작 시간 단축 에 중점을 두었습니다 . 일부 게임에서는 로딩 시간이나 실행 시간이 절반으로 줄어들었습니다.
D7VK는 특히 초기 버전의 Direct3D를 사용하는 고전 게임들을 위해 설계되었으며, 이러한 게임들은 Wine이나 Proton을 사용하여 Linux에서 여전히 실행될 수 있습니다. 이 프로젝트는 이러한 구형 API를 위한 백엔드로 Vulkan을 사용하며, Direct3D 8, 9, 10, 11에 초점을 맞춘 최신 DXVK 버전이나 Direct3D 12용으로 설계된 VKD3D-Proton에서 직접적으로 다루지 않는 부분을 보완합니다.
D7VK 2.1은 고전 게임의 로딩 시간을 단축시켜 줍니다.
D7VK 2.1의 주요 신규 기능은 객체 생성 및 소멸 과 관련된 것입니다 . 이 프로젝트는 객체의 생명주기를 추적하는 데 필요한 오버헤드를 줄여 게임 로딩 및 초기화 단계에서 필요한 작업량을 감소시켰습니다.
이번 변경 사항은 게임 시작 시간에 직접적인 영향을 미칩니다. 개발자에 따르면 여러 게임에서 눈에 띄는 개선 효과가 나타났으며, 일부 게임은 이전 버전의 D7VK에 비해 로딩 시간이 절반 이상 단축되었습니다 . 고전 게임은 최신 하드웨어에서 일반적으로 로딩 시간 문제가 심각하지 않지만, 개발팀은 이러한 최적화를 통해 사용 가능한 리소스를 더욱 효율적으로 활용할 수 있다고 보고 있습니다.
캐싱 시스템도 개선되었습니다. 객체 수명 주기 관리 비용 절감과 더욱 효율적인 캐시 동작이 결합되어 애플리케이션 시작 및 특정 후속 작업 중에 D7VK가 수행해야 하는 작업량이 줄어듭니다.
중요한 호환성 수정 사항도 있습니다.
D7VK 2.1은 로딩 시간 최적화뿐만 아니라, 관련 깊이 스텐실 표면 해제와 관련된 use-after-free 문제도 해결합니다 . 이 버그는 MSVC 또는 Clang으로 컴파일된 특정 바이너리에서만 발생했으며, 일부 게임이 시작 중에 예기치 않게 충돌하는 원인이 될 수 있었습니다.
영향을 받은 게임 중 하나는 Arx Fatalis 였는데 , 실행 시 충돌이 발생하는 문제가 있었습니다. D7VK 2.1에 포함된 수정 사항은 이 문제를 해결하여 해당 버그 없이 게임을 실행할 수 있도록 합니다.
이번 업데이트에는 특정 게임에 대한 조정 사항도 포함되어 있습니다. 특히, 이번 업데이트를 통해 성능 향상을 기대할 수 있는 고전 게임 인 레지던트 이블 2 와 엠파이어 어스: 더 아트 오브 컨퀘스트의 성능이 개선되었습니다.
GetDC 및 ReleaseDC에 대한 새로운 선택적 경로
또 다른 참신함 D7VK 2.1 이는 호출에 대한 선택적 실행 경로입니다. GetDC y ReleaseDC목표는 이러한 기능을 집중적으로 사용하는 특정 게임의 성능을 향상시키는 것입니다.
구현 여부는 선택 사항입니다. 그 결과는 각 게임의 동작 방식에 따라 크게 달라지기 때문입니다. 어떤 경우에는 성능 향상을 가져올 수 있지만, 반대로 특정 작업의 비용을 증가시키는 결과를 초래할 수도 있습니다.
개발자 본인도 이 방법을 사용하면 Arx Fatalis 게임 플레이 중 FPS가 약 5~10% 정도 향상되는 것을 확인했습니다 . 하지만 이 설정은 게임 메인 메뉴 렌더링 시 성능 저하를 유발합니다. 따라서 이 최적화는 모든 게임에 무분별하게 적용하기보다는 특정 게임에서 유용할 수 있는 옵션으로 고려하는 것이 좋습니다.
리눅스에서 윈도우 고전 게임을 플레이하는 데 있어 흥미로운 개선점입니다.
D7VK 2.1 의 가장 큰 장점은 게임 카탈로그에 있습니다. 최신 게임에 비하면 다소 적어 보일 수 있지만, 리눅스를 고전 게임 플랫폼으로 사용하는 사용자에게는 여전히 의미 있는 구성입니다. 이 레이어는 구형 Direct3D API 3, 5, 6, 7을 Vulkan으로 변환하여 Wine이나 Proton을 사용하여 이러한 게임을 실행할 수 있도록 해줍니다.
이는 특히 최신 그래픽 API가 표준이 되기 훨씬 이전에 개발된 게임에 유용합니다. D7VK는 Wine을 통해 제공되는 기존 Direct3D 구현에만 의존하는 대신, 최신 그래픽 하드웨어 및 드라이버에서 더 나은 호환성과 성능을 제공하는 Vulkan 기반 접근 방식을 제공합니다.
D7VK 2.1 버전이 출시되었습니다.
D7VK 2.1 버전 이 프로젝트 저장소에서 다운로드 가능합니다. 이번 새 버전은 이전 업데이트와 달리 FPS 향상보다는 번역 레이어의 내부 작동 방식을 개선하는 데 중점을 두었습니다.
객체 생성 시 오버헤드를 줄이고, 캐싱을 개선하고, 부팅 프로세스를 최적화하면 특정 게임의 로딩 시간을 크게 단축할 수 있습니다. 이는 Arx Fatalis 충돌 문제 해결, 다른 게임들에 대한 조정, 그리고 새로운 선택적 경로 추가와 함께 진행되는 작업입니다. GetDC/ReleaseDC.
이로써 D7VK 2.1은 리눅스에서 게임을 즐길 때 특히 중요한 부분, 즉 마이크로소프트의 구형 그래픽 API를 사용하는 고전 게임들의 실행 품질을 향상시킵니다. 이번 업데이트는 수십 년 된 게임이라도 최신 하드웨어에서 실행될 때에도 게임 경험을 개선할 여지가 여전히 있음을 보여줍니다.