Projekti Wine publikoi versionin e paketës vkd3d 1.17 me implementimin e Direct3D 12, duke punuar përmes përkthimit të thirrjeve në API-në grafike Vulkan. Në paketë përfshihen bibliotekat libvkd3d me implementimin e Direct3D 12, libvkd3d-shader me përkthyesin e modeleve të shenjave 4 dhe 5 dhe libvkd3d-utils me funksione për lehtësimin e portimit të aplikacioneve Direct3D 12, si dhe një set shembujsh demonstrues, duke përfshirë portimin e 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ë dhe llogaritje, radhë dhe lista komanduese, deskriptorë dhe deskriptorë kupë, nënshkrime rrënjësore, qasje të pa renditur, Sampler, nënshkrime komandash, konstanta rrënjësore, përshkrimin e të pavendosur (indirect) dhe metodet Clear*() dhe Copy*(). Në libvkd3d-shader është realizuar translacioni i kodit të bajtëve të modeleve të shenjuesve në përfaqësimin e ndërmjetëm SPIR-V. Mbështeten shenjues të majtë, piksel, tessellim, llogaritje dhe shenjues të thjeshtë gjeometrik, serializimi dhe deserializimi i nënshkrimeve rrënjësore. Nga instruksionet e shenjuesve janë realizuar operacione aritmetike, atomike dhe bitore, operatorë krahasimi dhe kontrolli të rrjedhës së të dhënave, instruksionet sample, gather dhe load, operacione qasjeje të pa renditur (UAV, Unordered Access View).
NĂ« versionin e ri:
- Në implementimin e gjuhës së shenjave HLSL është shtuar mbështetje fillestare për memorien e ndarë të grupeve të rrjedhave, është zgjeruar mbështetja për shenjat gjeometrike, dhe është shtuar një parser për burimet StructuredBuffer.
- Përparimi i implementimit të gjuhës së shenjave MSL (Metal Shading Language), e cila përdoret nga Apple në API-në grafike Metal, ka vazhduar. Për shembull, në MSL është shtuar mbështetje për ciklet, adresimin e drejtpërdrejtë të bufereve të vazhdueshëm, sampling e teksturave dhe operacione të ndryshme të aritmetikës dhe krahasimit të numrave të plotë.
- Në bibliotekën libvkd3d, në implementimin e ndërfaqes ID3D12Device5 është shtuar metoda EnumerateMetaCommands().
- ĂshtĂ« shtuar njĂ« tip i ri shenjeve "tx" (VKD3D_SHADER_SOURCE_TX), i pĂ«rdorur pĂ«r ngarkimin e shenjave tĂ« pĂ«rpunimit tĂ« teksturave.
Burimi: opennet.ru
