Projekt Wine on avaldanud vkd3d paketi väljaande 1.17, mis реализирует Direct3D 12, tööledes läbi kutsungite teisendamise Vulkan'i graafika API-sse. Pakett sisaldab teeke libvkd3d, mis реализирует Direct3D 12, libvkd3d-shader, mis sisaldab 4. ja 5. mudeli shaderite tõlkijat, ja libvkd3d-utils, mis pakub funktsioone Direct3D 12 rakenduste portimise lihtsustamiseks, samuti komplekti demo näiteid, sealhulgas glxgears'i porti Direct3D 12-le. Projekti kood on litsentseeritud LGPLv2.1 alusel.
libvkd3d raamatukogu toetab enamikku Direct3D 12 omadustest, sealhulgas grafika- ja arvutusvahendite, järjekordade ja käsuliinide, deskriptsioonide ja paki deskriptsioonide, juure allkirjade, järjestamatute ligipääsude, samplerite, käsitsi allkirjade, juure konstandi, kaudse (indirect) joonistamise, Clear*() ja Copy*() meetodite rakendamist. libvkd3d-shader'is on rakendatud shaderi mudelite bytecode tõlkimine vahepealsesse SPIR-V vormingusse. Toetatakse tipp-, piksel-, tesselleerimise, arvutus- ja lihtsaid geomeetrilisi shaidereid, samuti juure allkirjade serialiseerimist ja deserialiseerimist. Shaderi instruktsioonide hulka kuuluvad aritmeetilised, aatomilised ja bitilised operatsioonid, võrdlus- ja andmevoo juhtimise operaatorid, sample, gather ja load instruktsioonid, samuti järjestamata ligipääsu operatsioonid (UAV, Unordered Access View).
Uues versioonis:
- HLSL shaderikeele teostusse on lisatud algtoetust rühmade jagatud mälule, on laiendatud geomeetriliste shaderite toetust ning lisatud struktureeritud andmebaasi ressurssidele parser.
- MSL (Metal Shading Language) shaderikeele teostuste areng on jätkunud, mida Apple kasutab oma Metal graafika API-s. Näiteks on MSL-is lisatud tsüklite toetus, pidevate andmebaaside mittesihiline adresseerimine, tekstuuride näidustamine ja erinevad täisarvuaritmeetika ning võrdlemise toimingud.
- Raamatukogusse libvkd3d on töötlusliidese ID3D12Device5 teostusse lisatud meetod EnumerateMetaCommands().
- Uus shaderi tüüp «tx» (VKD3D_SHADER_SOURCE_TX) on lisatud, mida kasutatakse tekstuuri töötlemise shaderite laadimiseks.
Allikas: opennet.ru
