Wydanie implementacji DXVK 2.0, Direct3D 9/10/11 na szczycie Vulkan API

Dostępna jest wersja DXVK 2.0, która zapewnia implementację DXGI (Infrastruktura graficzna DirectX), Direct3D 9, 10 i 11, działającą poprzez translację wywołań do Vulkan API. DXVK wymaga sterowników obsługujących API Vulkan 1.3, takich jak Mesa RADV 22.0, NVIDIA 510.47.03, Intel ANV 22.0 i AMDVLK. DXVK może być używany do uruchamiania aplikacji i gier 3D w systemie Linux przy użyciu Wine, służąc jako wydajniejsza alternatywa dla wbudowanych w Wine implementacji Direct3D 9/10/11 działających na OpenGL.

Główne zmiany:

  • Zwiększono wymagania dla wersji API graficznego Vulkan - wymaga ona teraz sterownika obsługującego Vulkan 1.3 (wcześniej wymagany był Vulkan 1.1), co umożliwiło zaimplementowanie obsługi nowych funkcji związanych z kompilacją shaderów. W praktyce DXVK 2.0 można uruchomić na dowolnym systemie obsługującym wykorzystanie pakietu Proton Experimental do uruchamiania gier opartych na D3D11 i D3D12. Winevulkan wymaga do działania co najmniej Wine 7.1.
  • Zawiera kod projektu dxvk-native, który umożliwia tworzenie natywnych zestawów DXVK dla systemu Linux (niepowiązanych z Wine), których można używać nie do uruchamiania aplikacji Windows, ale w zwykłych aplikacjach Linux, co może być przydatne do tworzenia porty gier dla systemu Linux bez zmiany kodu renderującego opartego na D3D.
  • Rozszerzono obsługę Direct3D 9, m.in. poprawiono zarządzanie pamięcią (pliki mapowane w pamięci służą do przechowywania kopii tekstur), zaimplementowano obsługę poprawnego odczytu z aktywnych obszarów renderowania (rozwiązano problemy z pojawianiem się artefaktów podczas gry w GTA IV) oraz poprawiono wdrażanie kontroli przejrzystości.
  • W przypadku Direct3D 10 wycofano biblioteki d3d10.dll i d3d10_1.dll, które nie były instalowane domyślnie ze względu na obecność bardziej zaawansowanej implementacji D3D10 w Wine. Jednocześnie kontynuowana jest obsługa API D3D10 w bibliotece d3d10core.dll.
  • Obsługa Direct3D 11 została przeniesiona do poziomu funkcjonalności 12_1 (poziom funkcjonalności D3D11), aby osiągnąć takie funkcje, jak zasoby kafelkowe, rasteryzacja konserwatywna i widoki uporządkowane rasteryzatorem.
  • Implementacja interfejsu ID3D11DeviceContext, który reprezentuje kontekst urządzenia generujący polecenia rysowania, została przeprojektowana i w swoim zachowaniu jest bliższa Windowsowi. Przeróbka poprawiła kompatybilność z bibliotekami innych firm i zmniejszyła obciążenie procesora. W szczególności zmniejszono obciążenie procesora w grach, które aktywnie korzystają z odroczonych kontekstów (na przykład Assassin's Creed: Origins) lub często wywołują operację ClearState (na przykład God of War).
  • Wprowadzono zmiany związane z kompilacją shaderów. W obecności sterowników Vulkan obsługujących rozszerzenie VK_EXT_graphics_pipeline_library, kompilacja shaderów Vulkan jest realizowana podczas ładowania shaderów D3D w grach, a nie podczas renderowania, co rozwiązało problemy z zawieszaniem się spowodowane kompilacją shaderów podczas gry. Wymagane rozszerzenie jest obecnie obsługiwane tylko w zastrzeżonych sterownikach NVIDIA, począwszy od wersji 520.56.06.
  • Shadery D3D11 korzystają z modelu pamięci Vulkan.
  • Usunięto ograniczenie liczby zasobów, które można związać jednocześnie.
  • Naprawiono problemy występujące w grach:
    • Alan Wake
    • Alice Madness Returns
    • Anomalia: Warzone Ziemia
    • Poza dobrem i złem
    • Początki Dragon Age
    • Empire: Total War
    • Final Fantasy XV
    • Grand Theft Auto IV
    • Bohaterowie unicestwionych imperiów
    • Limit King Of Fighters XIII
    • Metal Gear Solid V: PARTER Zera
    • Odcinki SiN: Pojawienie się
    • Sonic Generations
    • człowiek Pająk
    • Statek
    • Warhammer Online
    • Ys Seven

Źródło: opennet.ru

Dodaj komentarz