Wine'i projekt avaldas vkd3d 1.14 paketi, mis sisaldab Direct3D 12 rakendust, mis töötab läbi Vulkan graafika API-le suunatud üleskutsete tõlke. Pakett sisaldab libvkd3d teeke, mis sisaldavad Direct3D 12 rakendusi, libvkd3d-shader, mis on 4. ja 5. taseme shaderite tõlkija, ja libvkd3d-utils, mis pakub võimalusi Direct3D 12 rakenduste lihtsustamiseks, samuti näidiste komplekti, sealhulgas glxgears'i porti Direct3D 12-sse. Projekti kood jagatakse LGPLv2.1 litsentsi alusel.
libvkd3d raamatukogu toetab enamikku Direct3D 12 funktsioone, sealhulgas graafika- ja arvutusvahendeid, järjekordi ja käsu loendeid, deskriptorite ja puhverski deskriptorite, juur-sigantuuride, mittesorteeritud juurdepääsu, sample'ite, käsusigantuuride, juur-konstantide, kaudse (indirect) joonistamise, Clear*() ja Copy*() meetodeid. libvkd3d-shaderis on realiseeritud shaderi mudelite bytecode'i tõlkimine vahepealsesse esitusvormi SPIR-V. Toetatakse tipp-, pikslirida-, tesselleerimise-, arvutus- ja lihtsaid geomeetrilisi shadereid, juur-sigantuuride serialiseerimist ja deserialiseerimist. Shaderi käsud hõlmavad arvutus-, aatom- ja bititehteid, võrdlus- ja voolu juhtimise operaatorite, sample, gather ja load instruktsioone, mittesorteeritud juurdepääsu operatsioonide (UAV, Unordered Access View) toetust.
Uues versioonis:
- Lisatud esialgne toetus MSL (Metal Shading Language) shaderi keelele, mida kasutab Apple oma Metal graafika API-s.
- Teostatud desassembleerija tugi binaarsete efektide jaoks.
- Teegis libvkd3 on ID3D12GraphicsCommandList1 liidesele lisatud meetod OMSetDepthBounds(), mis võimaldab dünaamiliselt muuta Z-puhvri sügavuse väärtuste lubatavat vahemikku.
- Lisatud keskkonnamuutuja VKD3D_CAPS_OVERRIDE rakendustele edastatava teabe kohta kergenduste võimaluste, sealhulgas maksimaalselt toetas tasemed ja ressursside sidumise kohta.
- HLSL shaderi keeles on lisatud esialgne tugi tesselatsioon shaderitele. Teostatud on sisseehitatud funktsioonid dst(), f32tof16(), mad(), modf() ja sincos(). Shaderite tasemete 1, 2 ja 3 puhul on lisatud 'discard' operatsiooni tugi. Fragment shaderite jaoks on lisatud sisendi semantika SV_SampleIndex ja arvutusshaderite jaoks SV_GroupIndex.
- GLSL shaderi keeles on teostatud suur hulk uusi käsklusi.
Allikas: opennet.ru
