Projekti Wine publikoi versionin e paketës vkd3d 1.14 me implementimin e Direct3D 12, që funksionon 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ë shaderave 4 dhe 5 dhe libvkd3d-utils me funksione për të thjeshtuar portimin e 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ë dhe llogaritje, radhë dhe lista komandash, deskriptues dhe deskriptues grumbujsh, nënshkrime themelore, qasje të papërkryer, Sampler-a, nënshkrime komandash, konstantet thelbësore, vizatimin indirekt, metodat Clear*() dhe Copy*(). Në libvkd3d-shader është implementuar përkthimi i kodit të byte të modeleve të shaderave në përfaqësimin ndërmjetës SPIR-V. Mbështeten shaderat e piksevëve, të vertexeve, të tesselacionit, llogaritëse dhe shaderat e thjeshtë gjeometrik, serializimi dhe deserializimi i nënshkrimit themelor. Nga instruksionet e shaderëve janë implementuar operacionet aritmetike, atomike dhe bllokuese, operatorët e krahasimit dhe kontrollit të rrjedhës së të dhënave, instrukcionet sample, gather dhe load, operacionet e qasjes së papërkryer (UAV, Unordered Access View).
NĂ« versionin e ri:
- ĂshtĂ« shtuar mbĂ«shtetje fillestare pĂ«r gjuhĂ«n e shaderĂ«ve MSL (Metal Shading Language), e cila pĂ«rdoret nga Apple nĂ« API-nĂ« grafike Metal.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r disassemblerin pĂ«r efektet binare.
- Në bibliotekën libvkd3, në ndërfaqen ID3D12GraphicsCommandList1 është implementuar metoda OMSetDepthBounds() për të ndryshuar dinamikisht intervalin e lejuar të vlerave të thellësisë në Z-buffer.
- ĂshtĂ« shtuar variabla e mjedisit VKD3D_CAPS_OVERRIDE pĂ«r tĂ« ri-pĂ«rcaktuar informacionin e dhĂ«nĂ« aplikacioneve mbi mundĂ«sitĂ« e disponueshme, siç janĂ« nivelet maksimale tĂ« mbĂ«shtetjes sĂ« funksionalitetit dhe lidhjet e burimeve.
- Në implementimin e gjuhës së shaderëve HLSL është shtuar mbështetje fillestare për shaderat e tesselacionit. Janë implementuar funksione të integruara dst(), f32tof16(), mad(), modf() dhe sincos(). Për profilin 1, 2 dhe 3 të modeleve të shaderëve është shtuar mbështetje për operacionin 'discard'. Janë shtuar mbështetje për semantikën e të dhënave hyrëse SV_SampleIndex për shaderat e fragmenteve dhe SV_GroupIndex për shaderat llogaritës.
- ĂshtĂ« implementuar njĂ« grup i madh instruksionesh tĂ« reja pĂ«r gjuhĂ«n e shaderĂ«ve GLSL.
Burimi: opennet.ru
