Projekti Wine publikoi versionin e paketës vkd3d 1.17 me implementimin e Direct3D 12, i cili funksionon përmes përkthimit të thirrjeve në API-në grafike Vulkan. Paketa përfshin bibliotekat libvkd3d me implementimin e Direct3D 12, libvkd3d-shader me përkthyesin e modeleve 4 dhe 5 të shenjave dhe libvkd3d-utils me funksione për thjeshtimin e portimit të aplikacioneve Direct3D 12, si dhe një grup shembujsh demonstrues, duke përfshirë portin glxgears në Direct3D 12. Kodi i projektit shpërndahet nën licencën LGPLv2.1.
Biblioteka libvkd3d mbështet shumicën e mundësive të Direct3D 12, duke përfshirë mjete për grafikën dhe llogaritjet, radhët dhe listat e komandave, deskriptorët dhe deskriptorët e kupës, nënshkrimet rrënjësore, aksesin e paorganizuar, Sampler-at, nënshkrimet e komandave, konstantet rrënjësore, vizatimin indirekt, metodet Clear*() dhe Copy*(). Në libvkd3d-shader është realizuar translacioni i kodit bajt të modeleve të shenjuesve në përfaqësimin e ndërmjetëm SPIR-V. Përkrahen shenjuesit e nyjave, pikselit, tessellation, llogaritës dhe geometrikët e 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 të kontrollit të fluksit të transmetimit të të dhënave, instrukcionet sample, gather dhe load, si dhe operacionet e aksesit të paorganizuar (UAV, Unordered Access View).
Në këtë version të ri:
- Në implementimin e gjuhës së shenjave HLSL është shtuar mbështetje fillestare për memorie të ndarë të grupeve të rivierave, është zgjeruar mbështetja për shenjat gjeometrike, dhe është shtuar një parser për resurset StructuredBuffer.
- Ka vazhduar zhvillimi i implementimit të gjuhës së shenjave MSL (Metal Shading Language), e cila përdoret nga Apple në API-në grafike Metal. Për shembull, në MSL është shtuar mbështetje për ciklet, adresimin indirekt të tamponëve të ndryshueshëm, mostrimin e teksturave dhe operacione të ndryshme të aritmetikës të gjithë numrash dhe krahasimit.
- Në bibliotekën libvkd3d, në implementimin e ndërfaqes së programit ID3D12Device5 është shtuar metoda EnumerateMetaCommands().
- ĂshtĂ« shtuar njĂ« lloj i ri shenjash "tx" (VKD3D_SHADER_SOURCE_TX), e cila pĂ«rdoret pĂ«r ngarkimin e shenjave pĂ«rpunuese tĂ« teksturave.
Burimi: opennet.ru
