Wine projekt paketi väljaandmine Direct3D 12 teostusega, mis töötab vulkan graafika API-sse kutsete tõlkega. Pakett sisaldab teeke libvkd3d Direct3D 12 teostamiseks, libvkd3d-shader 4. ja 5. mudeleid shaderite tõlkijaga ning libvkd3d-utils funktsioonide komplekti, et lihtsustada Direct3D 12 rakenduste portimist, samuti hulk näidiseid, sealhulgas glxgears'i portsioon Direct3D 12-le. Projekti kood. kergendus LGPLv2.1
Teek libvkd3d enamiku Direct3D 12 võimaluste, sealhulgas graafika ja arvutuste tööriistade, järjekordade ja käsuloendite, deskriptorite ja kuhi deskriptorite, juur- ja alamsignatuuride, mittejärjekindla juurdepääsu, Samplerite, käsusignatuuride, juurkonstantide, kaudse joonistamise, Clear*() ja Copy*() meetodite toetamine.
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.
Suurimad saavutused vkd3d 1.2-s on:
- Teek libvkd3d-shader on valmis kasutamiseks kolmandate osapoolte projektides.
- Toetamine tessellation shadereid.
- Toetamine juurese signatuuride muutmiseks, serialiseerimiseks ja deserialiseerimiseks (vkd3d_serialize_versioned_root_signature() ja vkd3d_create_versioned_root_signature_deserializer()).
- Toetamine voogedastust.
- Paljude varem kättesaamatute Direct3D 12 funktsioonide teostamine, sealhulgas multisampling toetamine, ressursside reserveerimine,
kaudne indekseeritud joonistamine, sügavuse renderdamine ilma pikslite shadereid, ressursside samaaegne juurdepääs erinevatest käsijärjekordadest, null- esitlused (Null-views). - Lisatud keskkonnamuutujad: VKD3D_CONFIG libvkd3d käitumise muutmise valikute seadmiseks ja VKD3D_VULKAN_DEVICE Vulkan API seadme ülekirjutamiseks.
- Lisatud toetus shaderi instruktsioonidele bufinfo,
eval_centroid,
eval_sample_index,
ld2ms,
sample_b,
sample_d,
sample_info,
samplepos.
Allikas: opennet.ru
