Projekti Wine publikoi versionin e paketës vkd3d 1.7 me realizimin e Direct3D 12, i cili funksionon përmes përkthimit të thirrjeve në API-në grafike Vulkan. Paketimi përmban bibliotekat libvkd3d me realizimin e Direct3D 12, libvkd3d-shader me përkthyesin e modeleve të shenjave 4 dhe 5, si dhe libvkd3d-utils me funksione për thjeshtimin e portimit të aplikacioneve Direct3D 12, si dhe një set shembujsh demonstrues, përfshirë portimin e glxgears në Direct3D 12. Kódi i projektit shpërndahet nën licencën LGPLv2.1.
Biblioteka libvkd3d mbështet shumicën e mundësive të Direct3D 12, përfshirë mjetet për grafikë dhe llogaritje, radhët dhe listat e komandave, deskriptorët dhe grumbujt e deskriptorëve, root signatures, qasjen e parenditur, sampler-at, command signatures, root constants, vizatimin indirekt (indirect), si dhe metodat Clear*() dhe Copy*(). Në libvkd3d-shader është zbatuar përkthimi i bytecode-it të modeleve të shader-ëve 4 dhe 5 në paraqitjen e ndërmjetme SPIR-V. Mbështeten shader-ë vertex, pixel, tessellation, compute dhe shader-ë të thjeshtë gjeometrikë, si edhe serializimi dhe deserializimi i root signature. Nga instruksionet e shader-ëve janë zbatuar operacionet aritmetike, atomike dhe bitwise, operatorët e krahasimit dhe të kontrollit të rrjedhës së të dhënave, instruksionet sample, gather dhe load, si dhe operacionet e qasjes së parenditur (UAV, Unordered Access View).
NĂ« versionin e ri:
- Punimet për përmirësimin e kompilatorit të shenjave në HLSL (High-Level Shader Language) janë vazhduar:
- Shtuar mundësia për thirrjen e funksioneve të përdoruesit dhe përdorimin e array-ve si parametra të funksioneve të përdoruesit.
- 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 tipe me saktësi të ulët me pikë lëkundëse, si 'min16float'.
- Përmirësuar ndjeshëm mbështetja për profilin e modeleve të shenjave Direct3D 1/2/3.
- Shtuar API publik për analizimin (vkd3d_shader_parse_dxbc) dhe serializimin (vkd3d_shader_serialize_dxbc) të të dhënave binare DXBC.
Burimi: opennet.ru
