Projekti Wine publikoi Vkd3d 1.14 me implementimin e Direct3D 12

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

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster