Zespół Wine wydał Wersja VKD3D 2.0 — główne wydanie biblioteki implementującej działanie aplikacji z Direct3D 12 przez VulkanVKD3D jest używany w standardowym Wine do obsługi aplikacji D3D12; nie należy go mylić z VKD3D-Proton, osobna gałąź gier firmy Valve, używana w Proton/Steam Play.
Projekt jest rozpowszechniany na podstawie licencji Licencja GNU Lesser General Public License 2.1 lub nowsza. Udostępnij kod źródłowy Kod opublikowano na WineHQ i jest on również dostępny w repozytoriach Wine.
VKD3D 2.0 stał się przejściem z gałęzi 1.19 Bezpośrednio do nowej wersji głównej. Główny nacisk położony jest na rozwój podsystemu shaderów i niskopoziomową kompatybilność z Direct3D 12.
Kluczowe zmiany:
Ulepszone przetwarzanie shaderów HLSL. Rozszerzono obsługę języka HLSL: zaimplementowano więcej operacji, które są teraz poprawnie przetwarzane przez kompilator i translator VKD3D. Jest to istotne dla aplikacji korzystających z natywnych shaderów HLSL, a nie tylko z prekompilowanego kodu bajtowego.
Ulepszona obsługa starszego kodu bajtowego Direct3D. Ulepszono obsługę starszych typów źródeł bajtkodu Direct3D, aby zapewnić zgodność ze starszymi formatami shaderów i narzędziami, które nadal można znaleźć w aplikacjach i silnikach.
Ulepszona praca z DXIL. VKD3D 2.0 nadal udoskonala obsługę DXIL, nowoczesnej pośredniej reprezentacji shaderów DirectX. Jest to kluczowy format dla D3D12, więc te zmiany mają bezpośredni wpływ na prawidłowe uruchamianie nowszych aplikacji.
Dodano ulepszenia efektów. Wersja zawiera zmiany związane z efektami – mechanizmami opisu i stosowania efektów graficznych w stosie Direct3D. Jest to raczej element infrastruktury, ale ma on znaczenie dla zgodności z istniejącym kodem graficznym.
Dodano eksperymentalną obsługę MSL. VKD3D 2.0 otrzymało eksperymentalne wsparcie dla generacji MSL — Język cieniowania metalu. Ten nacisk kładzie się na przenośność shaderów między platformami, na których Vulkan jest zazwyczaj używany, poprzez dodatkowe warstwy kompatybilności.
Rozszerzone interfejsy i możliwości debugowania. Twórcy dodali nowe interfejsy i ulepszyli narzędzia debugowania VKD3D, co powinno uprościć proces tworzenia, diagnostykę błędów i dalszy rozwój obsługi Direct3D 12 w Wine.
Warto to osobno podkreślić: dla większości użytkowników Steama, Linux główny komponent D3D12 pozostaje VKD3D-Proton, a nie standardowego VKD3D. Jednak VKD3D pozostaje ważną częścią samego Wine i służy jako podstawowa implementacja Direct3D 12 na bazie Vulkana w projekcie źródłowym.
Źródło: linux.org.ru
