Projekti Wine publikoi versionin e paketës vkd3d 1.7 me implementimin e Direct3D 12, i cili funksionon përmes translacionit të thirrjeve në API-në grafike Vulkan. Paketimi përfshin bibliotekat libvkd3d me realizimin e Direct3D 12, libvkd3d-shader me përkthyesin e modeleve të shenjave 4 dhe 5 dhe libvkd3d-utils me funksione për thjeshtimin e portimit të aplikacioneve Direct3D 12, si dhe një grup shembujsh demonstrues, duke përfshirë portin e glxgears në Direct3D 12. Kodi i projektit shpërndahet nën licencën LGPLv2.1.
Biblioteka libvkd3d mbështet shumicën e funksioneve të Direct3D 12, duke përfshirë mjete për grafikë dhe llogaritje, radhë dhe lista komandash, deskriptues dhe deskriptues grumbujsh, nënshkrime rrënjësorë, qasje të pa renditur, Sampler-a, nënshkrime komandash, konstantat rrënjësore, vizatimin indirekt, metodat Clear*() dhe Copy*(). Në libvkd3d-shader është implementuar përkthimi i kodit të bajtëve të modeleve 4 dhe 5 të shenjuesve në përfaqësimin e ndërmjetëm SPIR-V. Mbështeten shenjuesit e pikave, pikselave, tesselatorëve, llogaritësve dhe shenjuesit e gjeometrisë së thjeshtë, si dhe serializimi dhe deserializimi i nënshkrimit rrënjësor. Nga instrukcionet e shenjuesve janë realizuar operacione aritmetike, atomike dhe bitore, operatorët e krahasimit dhe kontrollit të rrjedhës së të dhënave, instrukcionet sample, gather dhe load, operacionet e qasjes së pa renditur (UAV, Unordered Access View).
Në këtë version të ri:
- Puna për përmirësimin e kompilerit të shenjave në gjuhën HLSL (High-Level Shader Language) është vazhduar:
- Shtuar mundësia e thirrjes së funksioneve të përdoruesve dhe përdorimi i matricave si parametra për funksionet e përdoruesve.
- Shtuar mbështetje për parametrat SV_DispatchThreadID, SV_GroupID dhe SV_GroupThreadID.
- Shtuar funksione të ndërtuara all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt(), step(), transpose().
- Shtuar mbështetje fillestare për lloje të saktësisë të ulët me pikë lundruese, të tilla si «min16float».
- Përmirësuar ndjeshëm mbështetja për profilin e modeleve të shenjave Direct3D 1/2/3.
- Shtuar një API publik për analizim (vkd3d_shader_parse_dxbc) dhe serializim (vkd3d_shader_serialize_dxbc) të të dhënave binare DXBC.
Burimi: opennet.ru
