PÀrast 1,5 aastat arendust on projekt Wine vÀlja andnud vkd3d 1.3 paketi, mis sisaldab Direct3D 12 rakendust, mis töötab Vulkani graafika API kaudu tehtava kÔnede teisendusega. Pakett sisaldab libvkd3d teeke Direct3D 12 rakendamiseks, libvkd3d-shader teeki 4. ja 5. taseme shaderite tÔlkijaga ja libvkd3d-utils teeki, mis sisaldab funktsioone Direct3D 12 rakenduste portimise lihtsustamiseks, samuti mitmeid demonstratiivseid nÀiteid, sealhulgas glxgears porti Direct3D 12-le. Projekti kood on litsentseeritud LGPLv2.1 alusel.
Libvkd3d teek toetab enamikku Direct3D 12 omadustest, sealhulgas graafilisi ja arvutusvahendeid, jÀrjekordi ja kÀskude loendeid, deskriptorite ja virnade deskriptorite haldamist, juurerakendusi, korrastamata juurde pÀÀsemist, sampler'ite haldamist, kÀskude allkirju, juurkonstantide seadistamist, kaudset (indirect) joonistamist, Clear*() ja Copy*() meetodeid.
libvkd3d-shaderis on teostatud 4. ja 5. mudeli shaderi bytecode'i tĂ”lkimine vahepealsesse SPIR-V esitusse. Toetatakse vertikaalseid, pikslilisi, tesselatsioonilisi, arvutuslikke ja lihtsaid geomeetrilisi shader'e, samuti juurdokumendi seeriat ja deserialiseerimist. Shader'i juhistest on ellu kutsutud arvutus-, atomaar- ja bititegevused, vĂ”rdlus- ja andmevoogu juhtivad operaatorid, sample, gather ja load juhised, samuti mittesĂŒsteemse juurdepÀÀsu tegevused (UAV, Unordered Access View).
Vkd3d 1.3 oluliste uuenduste hulka kuuluvad:
- Lisatud pÔhitoe shaderite kompileerimiseks ja eelprotsessimiseks HLSL (High-Level Shader Language) keeles, mis on saadaval alates DirectX 9.0.
- Lisatud toetust 5.1 mudelis mÀÀratletud deskriptorite massiividele.
- Toetatud on kaheflaadi ĂŒmberarvutamise operatsioonide teostamine shaderites, tesselatsiooniliste shaderite kaudne adresseerimine, stencil'i eksport shaderitest, shader'i modifikaator 'precise' ning globaalsete barjÀÀride toetamine mĂ€luressurssidele.
- Teostatud on Direct3D shaderite dissekveerimise vÔimalus bytecode'ist assembleri esitusse.
- Lisatud on toetuse parsimiseks vana bytecode'i formaadi jaoks, mida kasutatakse Direct3D 1, 2 ja 3 varjundimudelite puhul.
- libvkd3d on lisatud Direct3D 12 funktsioonid, nagu juur-sigareerimised, vaatehulkade loendurid, loogilised sulandumisse operaatorid vĂ€ljundiks ja tekstuuride aadressimisreĆŸiim mirror_once. Lisatud on vkd3d_host_time_domain_info struktuur.
Allikas: opennet.ru
