Echipa Wine a lansat VKD3D 2.0 — o lansare majoră a bibliotecii care permite funcționarea aplicațiilor cu Direct3D 12 deasupra Vulkan. VKD3D este utilizat în upstream-ul standard Wine pentru suportul aplicațiilor D3D12; nu ar trebui să fie confuz cu VKD3D-Proton, o ramură separată de jocuri a Valve, utilizată în Proton/Steam Play.
Proiectul este distribuit sub licența GNU Lesser General Public License 2.1 sau o versiune ulterioară. Codul sursă al lansării a fost publicat pe serverul WineHQ, de asemenea, codul este disponibil prin repositoare Wine.
VKD3D 2.0 a fost o trecere de la ramura 1.19 direct la o nouă versiune majoră. Accentul principal a fost pus pe dezvoltarea subsistemului de shader și pe compatibilitatea de nivel inferior cu Direct3D 12.
Modificări cheie:
S-a îmbunătățit procesarea shaderelor HLSL. S-a extins suportul pentru limbajul HLSL: au fost implementate mai multe operații, care acum sunt corect procesate de compilatorul și translatorul VKD3D. Acest lucru este important pentru rularea aplicațiilor care folosesc propriile shader HLSL, nu doar codul byte precompilat.
S-a finalizat suportul pentru bytecode-ul Direct3D vechi. A fost îmbunătățită lucrul cu vechiul tip de bytecode Direct3D pentru compatibilitate cu formatele și instrumentele vechi de shader care încă pot fi întâlnite în aplicații și motoare.
A fost îmbunătățită compatibilitatea cu DXIL. În VKD3D 2.0, continuarea îmbunătățirii procesării DXIL — o reprezentare intermediară modernă a shaderelor DirectX. Pentru D3D12, acest lucru este unul dintre formatele cheie, astfel încât aceste modificări influențează direct corectitudinea rulării aplicațiilor mai noi.
S-au adăugat îmbunătățiri pentru efecte. Lansarea include modificări legate de efecte — mecanismele care descriu și aplică efectele grafice în stiva Direct3D. Aceasta este mai degrabă o parte de infrastructură, dar este importantă pentru compatibilitatea cu codul grafic existent.
A apărut suport experimental pentru MSL. VKD3D 2.0 a primit suport experimental pentru generarea MSL — Metal Shading Language. Această direcție este legată de portabilitatea părții de shader pe platforme unde Vulkan este utilizat, de obicei, prin straturi suplimentare de compatibilitate.
S-au extins interfețele și capabilitățile de depanare. Dezvoltatorii au adăugat noi interfețe și au îmbunătățit instrumentele de depanare VKD3D, ceea ce ar trebui să simplifice dezvoltarea, diagnosticarea erorilor și continuarea sprijinului pentru Direct3D 12 în Wine.
Este important să subliniem: pentru majoritatea utilizatorilor Steam pe Linux, componenta principală D3D12 rămâne VKD3D-Proton, și nu un VKD3D obișnuit. Cu toate acestea, VKD3D rămâne o parte importantă a Wine-ului și servește ca o implementare de bază a Direct3D 12 peste Vulkan în proiectul upstream.
Sursa: linux.org.ru
