Opublikowano wydanie projektu D7VK 1.12, rozwijającego implementację graficznych API Direct3D 3, 5, 6 i 7, zaproponowanych przez firmę Microsoft w latach 1996, 1997, 1998 i 1999. D7VK działa poprzez translację wywołań do API Vulkan i umożliwia uruchamianie gier retro zależnych od API Direct3D 3, 5, 6 i 7 na systemie Linux z wykorzystaniem Wine. Kod projektu napisany jest w języku C++ i jest dystrybuowany na licencji Zlib. Jako baza dla rozwoju wykorzystano kod backendu d3d9 z projektu DXVK — D7VK przekształca API Direct3D 3, 5, 6 i 7 w wywołania Direct3D 9, które następnie są translokowane do API Vulkan. Twórca nie ma zamiaru dążyć do włączenia D7VK do zestawu DXVK, jak to miało miejsce w przypadku implementacji Direct3D 8 i Direct3D 9 na bazie Vulkan.
W nowym wydaniu:
- Zrealizowano szereg optymalizacji wydajności, głównie dotyczących kodu API wykonywanego na CPU. Wyniki wydajności D3D6 w teście 3DMark 99 Max wzrosły z 70685 punktów w D7VK 1.2 do 75283 w D7VK 1.12, a D3D7 w teście 3DMark 2000 v1.1 z 45267 w D7VK 1.0 do 69566 w D7VK 1.12. W niektórych przypadkach wprowadzone mikrooptymalizacje znacznie zwiększyły FPS w systemach z słabymi CPU, na przykład w grze Unreal Tournament FPS wzrósł z 256 do 484, a obciążenie GPU spadło z 37% do 18%.
- Uproszczono realizację przezroczystości na podstawie klucza kolorów (Color Key) bez użycia pełnoprawnego kanału alfa.
- W D3D6/5/3 zoptymalizowano przekształcenia kolorów podczas czyszczenia viewportu.
- Aby zmniejszyć liczbę używanych deskryptorów, przydział deskryptorów tekstur i materiałów teraz odbywa się po ich żądaniu przez aplikację, a nie w momencie tworzenia tekstury czy materiału.
- Dokonana została zmiana na działanie opartą na wydaniu DXVK 3.0.1.
- Wprowadzono poprawki poprawiające wsparcie dla gier Matrox TechDemo 3D, Star Trek: Starfleet Academy oraz The Sims: Complete Collection.
Źródło: opennet.ru
