A VKD3D, a Wine Direct3D–Vulkan fordító könyvtára megjelent 2.1-es verzióban, amelynél a munka nagy része a shaderek fordítására, kompatibilitására és reflection funkcióira koncentrált.
Az egyik legnagyobb fejlesztés a Microsoft HLSL shadernyelvét érinti. A kiadás javít egy fordítóhibát a beágyazott függvényhívások kezelésében, ahol különböző argumentumok hibásan ugyanazt az eredményt használhatták.
A shader fordító egy új optimalizáló lépést kapott, amely eltávolítja a nem használt adatokat. Így a régebbi Direct3D shaderek viselkedése jobban közelíti azt, amit a Microsoft saját eszközeivel fordítva kapnánk. Bővült a félpontosságú aritmetika támogatása is, és szigorúbb lett a shader bemenetek és kimenetek ellenőrzése.
Javult a kompatibilitás a régebbi Direct3D shader bytecode-dal is. A Vkd3d 2.1 több legacy utasítást és módosítót támogat, ezért szélesebb körű régi shaderkódot tud helyesen kezelni.
Vulkan oldalon a SPIR-V backend további numerikus konverziós lehetőségekkel bővült, különösen a DXIL-ből származó shaderek esetében, amely a modern Direct3D által használt köztes formátum.
Tovább halad a Vkd3d kísérleti GLSL kimenetének fejlesztése. A backend most már összetettebb shaderfunkciókat is kezel, például a megosztott memóriát, atomi műveleteket, barrier utasításokat, közvetett bemenet-hozzáférést és további compute shader bemeneteket.
A kiadás másik fontos része a továbbfejlesztett shader reflection. A reflection lehetővé teszi, hogy a szoftver egy lefordított shadert megvizsgáljon, és információt kérjen le a változókról, erőforrásokról, bemenetekről, kimenetekről és egyéb tulajdonságokról.
A Vkd3d 2.1 számos korábban hiányzó reflection képességet is hozzáad, és a támogatást a Direct3D 12-n túl kiterjeszti a Direct3D 10 és 11 interfészekre is.
A kiadás emellett javítja a kompatibilitást a régebbi Microsoft shader fordító viselkedésével, különösen a félpontosságú változók körül, és új előfeldolgozási és reflection funkciókat vezet be, hogy közelebbről utánozza a Microsoft fordító bizonyos verzióit.
Végül a Vkd3d parancssori eszközei kisebb fejlesztéseket kaptak. A shader fordító új opciót kínál a félpontosságú kompatibilitásra, míg a DXBC segédprogram képes egy lefordított shader konténeren belül csak egyes szekciókat lecserélni, ahelyett hogy az egészet újra kellene építeni.
További részletekért nézd meg a változásnaplót. A Vkd3d 2.1 forráskódként érhető el a WineHQ oldalán.

