Projekti Wine publikoi versionin e paketës vkd3d 1.16 me implementimin e Direct3D 12, i cili funksionon nëpërmjet përkthimit të thirrjeve në API grafik Vulkan. Paketa përmban libraritë libvkd3d me implementimin e Direct3D 12, libvkd3d-shader me përkthyesin e modeleve të shenjuesve 4 dhe 5 dhe libvkd3d-utils me funksione për të thjeshtuar portimin e aplikacioneve Direct3D 12, si dhe një set shembujsh demonstruese, 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:
- ĂshtĂ« stabilizuar dhe pĂ«rfshirĂ« si parazgjedhje mbĂ«shtetje pĂ«r shenjuesit DXIL (DirectX Intermediate Language).
- Në kompilatorin e gjuhës së shenjuesve HLSL është shtuar mbështetje fillestare për shenjuesit gjeometrikë. Për modelet e shenjuesve 1, 2, 3 është realizuar mbështetje për adresimin e tërthortë, moduleve dhe kufizimin e vlerave.
- NĂ« bibliotekĂ«n libvkd3d Ă«shtĂ« shpallur mbĂ«shtetje pĂ«r modelin e shenjuesve 6.0. NĂ« ndĂ«rfaqen e programit ID3D12Device1 Ă«shtĂ« realizuar metoda SetEventOnMultipleFenceCompletion(). ĂshtĂ« shtuar mbĂ«shtetje pĂ«r zgjatimin Vulkan VK_KHR_zero_initialize_workgroup_memory pĂ«r inicializimin me zero tĂ« memories pĂ«r shenjuesit. Zgjatimi Vulkan VK_KHR_maintenance2 Ă«shtĂ« pĂ«rfshirĂ« si i detyrueshĂ«m sipas specifikimit Vulkan 1.1.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r disasemblerimin e shenjuesve SPIR-V dhe efekteve tĂ« binarĂ«ve "fx_2_0".
- ĂshtĂ« shtuar mbĂ«shtetje eksperimentale pĂ«r adresimin e tĂ«rthortĂ« tĂ« bufferĂ«ve konstantĂ« nĂ« GLSL (OpenGL Shading Language).
- Në implementimin e gjuhës së shenjuesve MSL (Metal Shading Language), e përdorur nga Apple në API-in grafik Metal, është shtuar mundësia për të ngarkuar tekstura.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r funksionet e integruara HLSL: AllMemoryBarrier(), AllMemoryBarrierWithGroupSync(), DeviceMemoryBarrier(), DeviceMemoryBarrierWithGroupSync(), GroupMemoryBarrier() dhe GroupMemoryBarrierWithGroupSync().
- Janë realizuar flagjet VKD3D_SHADER_COMPILE_OPTION_FEATURE_ZERO_INITIALIZE_WORKGROUP_MEMORY, VKD3D_SHADER_COMPONENT_INT64, VKD3D_SHADER_COMPONENT_FLOAT16, VKD3D_SHADER_COMPONENT_UINT16, VKD3D_SHADER_COMPONENT_INT16, VKD3D_SHADER_RESOURCE_DATA_NONE dhe VKD3D_SHADER_RESOURCE_DATA_UINT.
Burimi: opennet.ru
