Wine'i projekt avaldas vkd3d 1.5 paketi, mis rakendab Direct3D 12, töötades läbi kutsungite ülekande Vulkani graafikatihedasse API-sse. Pakett sisaldab teeke libvkd3d Direct3D 12 rakendamiseks, libvkd3d-shader, mis sisaldab 4. ja 5. mudeli shääderite tõlkijat, ning libvkd3d-utils, mis sisaldab funktsioone, et lihtsustada Direct3D 12 rakenduste portimist, samuti komplekti demonstraatsiooninäite, sealhulgas glxgears porti Direct3D 12 peale. Projekti kood jagatakse LGPLv2.1 litsentsi alusel.
Raamatukogu libvkd3d toetab enamikku Direct3D 12 funktsionaalsusest, sealhulgas graafikute ja arvutuste tööriistu, järjekordi ja käskude loendeid, descriptor'e ja kuhjade descriptor'e, juurte signatuuride, ebaühtlase juurdepääsu, Sampler'id, käskude signatuurid, juure konstantide, kaudset joonistamist, Clear*() ja Copy*() meetodeid.
libvkd3d-shader rakendab 4. ja 5. mudeli shääderite bytecode'i tõlkimist vaheesitusesse SPIR-V. Toe all on tippude, pikslite, tesselatsiooni, arvutamis- ja lihtsad geomeetrilised shääderid, juuresignatuuride serialiseerimine ja deserialiseerimine. Shääderi käsud pakuvad arvutuslike, atomaarsete ja bitiliste operatsioonide, võrdlevate ja andmevoo juhtimisoperatsioonide, näidiste, kogumiste ja laadimise käske, ning ebaühtlase juurdepääsu operatsioonide (UAV, Unordered Access View) toimet.
Uues versioonis:
- Paljusid täiustusi on tehtud HLSL (High-Level Shader Language) shääderite kompilaatorisse, mis on saadaval alates DirectX 9.0-st. Sealhulgas objektitüüpide HLSL, näiteks Texture2D, struktuuride ja massiivide jaoks on parandatud toe taset, samuti on lisatud todetudi funktsioonide dot(), ldexp() ja lerp() toed. 4. ja 5. mudeli shääderite jaoks on lisatud toed loogilistele operaatoritele "and", "or" ja "not", samuti boole'ndekse tüüpide kohandamise võimalus.
- Rakendatud on VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV valik, et laadida ebaühtlaste juurdepääsu (UAV) vaateid mitme komponendiga SPIR-V formaatides (DXGI_FORMAT).
Allikas: opennet.ru
