PÀrast poolteist aastat arendust, avaldas projekt Wine vkd3d 1.3 versiooni, mis rakendab Direct3D 12, toimides lÀbi kutsete tÔlke graafikarakenduse Vulkan. Pakett sisaldab raamatukogusid libvkd3d, mis sisaldab Direct3D 12 rakendust, libvkd3d-shader, mis pakub 4. ja 5. mudeli shaderite tÔlki, ning libvkd3d-utils, mis sisaldab funktsioone Direct3D 12 rakenduste portimise lihtsustamiseks, koos nÀidisnÀidetega, sealhulgas glxgearsi portimisega Direct3D 12-le. Projekti kood on litsentseeritud LGPLv2.1 alusel.
Raamatukogu libvkd3d toetab enamikku Direct3D 12 funktsioone, sealhulgas graafika ja arvutamise tööriistu, jÀrjekordi ja kÀskude loendeid, deskriptorid ja mÀlu deskriptorid, juurekirjed, korraldava juurdepÀÀsu, samplereid, kÀskude signatuure, juurekonstantide, kaudse joonistamise, Clear*() ja Copy*() meetodeid.
libvkd3d-shader'is on teostatud 4. ja 5. mudeli shaderi bytecode'i tÔlge SPIR-V vahevormiks. Toetatakse vertex, pixel, tessellation, compute ning lihtsaid geomeetrilisi shadereid, juurese signatuuri serialiseerimist ja deserialiseerimist. Shaderite instruktsioonide hulka kuuluvad aritmeetilised, aatomilised ja bititasandi tehingud, vÔrdlus- ja andmevoo juhtimise operaatorid, instruktsioonid sample, gather ja load, ning mittejÀrjekindla juurdepÀÀsu (UAV, Unordered Access View) tehingud.
Vkd3d 1.3 kÔige olulisemad uuendused on:
- Lisatud algne toetus HLSL (High-Level Shader Language) shaderite kompileerimiseks ja eelnevalt töötlemiseks, mis on saadaval alates DirectX 9.0-st.
- Lisatud toetus 5.1 mudeli shaderites mÀÀratletud deskriptorite massiividele.
- Toetatakse kahekordse tÀppidega ujuvvÔrrandite operatsioone shaderites, kaudset adressimist tesselatsiooni shaderites, stencilite eksporti shaderitest, sharderite modifikaatorit "precise" ning globaalset barjÀÀri mÀlu ressursse.
- Rakendatakse vÔimalust disassambleerida Direct3D shaderid baitkoodist assembleresitusele.
- Lisatud toetus vana Direct3D baitkoodi formaadi tÔlgendamiseks, mis on kasutusel Direct3D 1, 2 ja 3 mudelites.
- Raamatukogule libvkd3d on lisatud Direct3D 12 funktsioonid, nagu juurekirjed, vaate loenduri abil kaudne juurdepÀÀs, loogilised sulandumisoperaatorid vĂ€ljundile, tekstuuride pideva aadressimise reĆŸiim mirror_once. Lisatud on struktuur vkd3d_host_time_domain_info.
Allikas: opennet.ru
