Wine projekt paketi väljalaskmine Direct3D 12 teostus, mis töötab läbi kõnede tõlke Vulkan graafika API-le. Pakett sisaldab teeke libvkd3d Direct3D 12 teostuseks, libvkd3d-shader versioonide 4 ja 5 shaderite tõlkijat ning libvkd3d-utils funktsioone Direct3D 12 rakenduste portimise lihtsustamiseks, samuti komplekti demonstreerimise näiteid, sealhulgas glxgears portimist Direct3D 12-le. Projekti kood LGPLv2.1 litsentsi all.
Teek libvkd3d enamik Direct3D 12 funktsionaalsusi, sealhulgas graafika ja arvutuste tööriistu, järjekordi ja käsulisted, descriptorid ja peokirjeldajad, juureretseptid, mittejärjekordne juurdepääs, jõudlus, käsu signatuurid, juurekonstandid, kaudne joonistamine, Clear*() ja Copy*() meetodid.
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).
Kõige olulisemad vkd3d 1.2 hulgas on:
- Teek libvkd3d-shader on valmis kasutamiseks kolmandate osapoolte projektides.
- Toetab tessellatsioonishadereid.
- Toetab juurekirjeldajate (vkd3d_serialize_versioned_root_signature() ja vkd3d_create_versioned_root_signature_deserializer()) konversiooni, serialiseerimist ja deserialiseerimist.
- Toetab voogedastust.
- Direct3D 12-mitme varasema funktsiooni rakendamine, sealhulgas mitme proovimise, ressursside reserveerimise toetamine,
kaudse indeksitud kujutamise, sügavuse renderdamise ilma pikslite shaderiteta, erinevate käsu järjekordade ressursside samal ajal kasutamise, nullvaadete (Null-views) toetamine. - Lisatud keskkonnamuutujad: VKD3D_CONFIG libvkd3d käitumise muutmise valikute seadmiseks ja VKD3D_VULKAN_DEVICE Vulkan API seadme ülekirjutamiseks.
- Lisatud toetamine shader'i käsule bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
sample_b,
sample_d,
sample_info,
samplepos.
Allikas: opennet.ru
