VKD3D-Proton, Vulkan Descriptor Heap 지원 병합
VALVE
VK_EXT_descriptor_heap은 지난 1월 Vulkan 1.4.340과 함께 도입되었습니다. Descriptor heap 확장 기능은 디스크립터(descriptors)와 디스크립터를 저장하는 데 사용되는 메모리(descriptor heaps)를 명시적으로 관리할 수 있게 해줍니다. VK_EXT_descriptor_heap은 VK_EXT_descriptor_buffer에서 발견된 문제들을 해결하며, 더 높은 이식성 보장과 더 예측 가능한 성능 특성을 제공할 것입니다. VK_EXT_descriptor_heap은 Steam Play (VKD3D-Proton 사용)에 큰 도움이 될 것이며, NVIDIA와 같은 다양한 Vulkan 드라이버의 Proton 게이밍 성능 관련 문제들을 해결하는 데에도 기여할 것입니다.
그 이후 NVIDIA는 descriptor heap 지원을 배포하기 시작했으며, RADV 또한 Mesa 26.1에서 descriptor heaps를 병합했습니다. 이번 달 초에는 Intel ANV 드라이버에 실험적인 heap 지원이 도입되었습니다.
지난 4월, descriptor heap 지원을 구현하기 위한 VKD3D-Proton 풀 리퀘스트(pull request)가 있었습니다. 당시 Hans-Kristian Arntzen은 다음과 같이 설명했습니다:
"배포 가능한 수준의 거대한 재작성 작업입니다. 전체 PR은 테스트 목적으로 여기에 공개되어 있지만, 실제 반영은 수많은 단계를 거쳐 이루어질 것입니다.
이 기능이 기본값으로 배포 가능한 수준이 되기 전까지 해결해야 할 NVIDIA의 버그들이 여전히 남아 있기 때문에, VKD3D_CONFIG=descriptor_heap 뒤에 숨겨져 있습니다.
이전의 PoC(Proof of Concept)와 비교했을 때, 이 PR은 레거시 코드 경로를 제거하지는 않지만(hnnnnnnng), 힙(heap)이 모든 곳에서 안정화되고 오래된 GPU에 대한 지원을 종료할 수 있게 되면 해당 오래된 경로들을 결국 제거할 계획입니다."
오늘 날짜로 코드가 병합되었으며, Arntzen은 다음과 같이 논평했습니다:
결과적으로 다음 주요 Steam Play (Proton) 업데이트는 상당히 흥미로울 것입니다.