Tým Wine vydal VKD3D 2.0 – velké vydání knihovny, která umožňuje práci aplikací s Direct3D 12 na Vulkan. VKD3D je používán v běžném upstream Wine k podpoře D3D12 aplikací; nemělo by se to plést s VKD3D-Proton, samostatnou herní větví Valve použitou v Proton/Steam Play.
Projekt je distribuován pod licencí GNU Lesser General Public License 2.1 nebo novější. Zdrojový kód vydání je zveřejněn na serveru WineHQ, také kód je dostupný přes repozitáře Wine.
VKD3D 2.0 se stal přechodem z větve 1.19 rovnou na novou majory verzi. Hlavní důraz je kladen na rozvoj systémů shaderů a nízkoúrovňovou kompatibilitu s Direct3D 12.
Klíčové změny:
Byla vylepšena podpora HLSL shaderů. Rozšířena podpora jazyka HLSL: bylo implementováno více operací, které nyní jsou korektně zpracovány kompilátorem a převodníkem VKD3D. To je důležité pro spuštění aplikací, které používají vlastní HLSL shadery, a ne pouze předkompilovaný bytový kód.
Byla vyladěna podpora legacy Direct3D bytecode. Zlepšena práce se starým typem zdrojového bytového kódu Direct3D pro kompatibilitu se starými formáty shaderů a nástroji, které se stále objevují v aplikacích a enginech.
Byla vylepšena práce s DXIL. VKD3D 2.0 pokračuje ve vylepšování zpracování DXIL – moderního mezivrstvového zobrazení shaderů DirectX. Pro D3D12 je to jeden z klíčových formátů, takže tyto změny přímo ovlivňují správnost spuštění novějších aplikací.
Byly přidány vylepšení pro efekty. Do vydání byly zařazeny změny související s efekty – mechanismy popisu a aplikace grafických efektů v Direct3D stacku. To je spíše infrastruktura, ale je to důležité pro kompatibilitu se stávajícím grafickým kódem.
Byla přidána experimentální podpora MSL. VKD3D 2.0 získal experimentální podporu generace MSL – Metal Shading Language. Tato oblast se týká přenositelnosti shaderové části na platformy, kde se Vulkan obvykle používá přes další vrstvy kompatibility.
Byly rozšířeny rozhraní a ladící možnosti. Vývojáři přidali nová rozhraní a zlepšili nástroje pro ladění VKD3D, což by mělo usnadnit vývoj, diagnostiku chyb a další rozvoj podpory Direct3D 12 v Wine.
Je třeba zdůraznit: pro většinu uživatelů Steam na Linuxu zůstává hlavním D3D12 komponentem VKD3D-Proton, a nikoli běžný VKD3D. Přesto zůstává VKD3D důležitou součástí samotného Wine a slouží jako základní implementace Direct3D 12 nad Vulkanem v upstream projektu.
Zdroj: linux.org.ru
