Zespół Wine wydał VKD3D 2.0 — dużą wersję biblioteki, która umożliwia działanie aplikacji z Direct3D 12 Szczegółową konfigurację pokażę najpierw na przykładzie routera Vulkan. VKD3D jest używany w standardowym upstream Wine do obsługi aplikacji D3D12; nie należy go mylić z VKD3D-Proton, osobną gałęzią gry Valve, stosowaną w Proton/Steam Play.
Projekt jest dystrybuowany na licencji GNU Lesser General Public License w wersji 2.1 lub nowszej. Kod źródłowy wydania został opublikowany na serwerze WineHQ, a kod jest również dostępny przez repozytoria Wine.
VKD3D 2.0 oznacza przejście z gałęzi 1.19 od razu na nową wersję główną. Główny nacisk położono na rozwój systemu shaderów i niskopoziomową zgodność z Direct3D 12.
Kluczowe zmiany:
Poprawiono obsługę shaderów HLSL. Rozszerzono wsparcie dla języka HLSL: wprowadzono więcej operacji, które są teraz poprawnie obsługiwane przez kompilator i translatora VKD3D. Jest to ważne dla uruchamiania aplikacji, które używają własnych shaderów HLSL, a nie tylko wstępnie skompilowanego kodu bajtowego.
Udoskonalono wsparcie dla starszego kodu bajtowego Direct3D. Poprawiono współpracę ze starym typem kodu bajtowego Direct3D, aby zapewnić zgodność ze starymi formatami shaderów i narzędziami, które wciąż występują w aplikacjach i silnikach.
Udoskonalono pracę z DXIL. W VKD3D 2.0 kontynuowano rozwój obsługi DXIL — nowoczesnej reprezentacji pośredniej shaderów DirectX. Dla D3D12 jest to jeden z kluczowych formatów, dlatego zmiany te mają bezpośredni wpływ na poprawność uruchamiania nowszych aplikacji.
Dodano ulepszenia dla efektów. W wydaniu znalazły się zmiany związane z efektami — mechanizmami opisu i stosowania efektów graficznych w stosie Direct3D. Jest to raczej część infrastrukturalna, ale ważna dla zgodności z istniejącym kodem graficznym.
Wprowadzono eksperymentalne wsparcie dla MSL. VKD3D 2.0 zyskał eksperymentalne wsparcie dla generacji MSL — Metal Shading Language. Kierunek ten związany jest z przenośnością shaderowej części na platformy, gdzie Vulkan zwykle jest używany za pośrednictwem dodatkowych warstw kompatybilności.
Rozszerzono interfejsy i możliwości debugowania. Deweloperzy dodali nowe interfejsy i poprawili narzędzia debugowania VKD3D, co powinno uprościć rozwój, diagnostykę błędów i dalszy rozwój wsparcia Direct3D 12 w Wine.
Osobno należy podkreślić: dla większości użytkowników Steam na Linux głównym komponentem D3D12 pozostaje VKD3D-Proton, a nie zwykły VKD3D. Niemniej jednak VKD3D pozostaje ważną częścią samego Wine i służy jako podstawowa implementacja Direct3D 12 na Vulkanie w projekcie upstream.
Źródło: linux.org.ru
