A Wine projekt közzétette a vkd3d 1.17 csomag kiadását, amely a Direct3D 12 megvalósítását kínálja, és amely hívások átirányításán keresztül működik a Vulkan grafikus API-n. A csomag tartalmazza a libvkd3d könyvtárakat a Direct3D 12 megvalósítással, a libvkd3d-shader-t a 4. és 5. modell shader fordítójával, valamint a libvkd3d-utils-t a Direct3D 12 alkalmazások portolásának megkönnyítésére szolgáló funkciókkal, és egy sor bemutató példát is, beleértve a glxgears portját a Direct3D 12-re. A projekt kódja az LGPLv2.1 licenc alatt terjesztett.
A libvkd3d könyvtár a Direct3D 12 legtöbb funkcióját támogatja, beleértve a grafikai és számítási eszközöket, a parancslapokat és parancssorokat, a leírókat és a leíró tömböket, a gyökér aláírásokat, a rendezett hozzáférést, a Sampler-eket, a parancsok aláírásait, a gyökér konstansokat, az indirekt rajzolást, valamint a Clear*() és Copy*() metódusokat. A libvkd3d-shader könyvtárban a shader modellek bájt-kódjának átírása valósult meg SPIR-V köztes formába. Támogatottak a vertex, pixel, tessellációs, számítási és egyszerű geometriai shaderek, a gyökér aláírás szérializációja és deszérializációja. Az árnyékolási utasítások közül megvalósultak a matematikai, atomikus és bit műveletek, az összehasonlító operátorok és az adatáramlás vezérlő utasítások, a sample, gather és load utasítások, az Unordered Access View (UAV) műveletek.
Az új verzióban:
- A HLSL shader nyelv megvalósításában kezdeti támogatás került hozzáadásra a thread group megosztott memóriájához, a geometriai shaderek támogatása kiterjesztésre került, valamint egy parser került hozzáadásra a StructuredBuffer erőforrásokhoz.
- Folyamatosan fejlődik a Metal Shading Language (MSL) shader nyelv megvalósítása, amelyet az Apple használ a Metal grafikus API-ban. Például a MSL támogatja a ciklusokat, a konstans buffer közvetett címzését, a textúrák mintavételét, valamint különféle egész számú aritmetikai és összehasonlító műveleteket.
- A libvkd3d könyvtár ID3D12Device5 programozási interfészének megvalósításában hozzáadásra került az EnumerateMetaCommands() metódus.
- Hozzáadásra került egy új shader típus, az „tx” (VKD3D_SHADER_SOURCE_TX), amelyet a textúra feldolgozó shaderek betöltésére használnak.
Forrás: opennet.ru
