Праект Wine апублікаваў Vkd3d 1.5 з рэалізацыяй Direct3D 12

Праект Wine апублікаваў выпуск пакета vkd3d 1.5 з рэалізацыяй Direct3D 12, якая працуе праз трансляцыю выклікаў у графічны API Vulkan. У склад пакета ўваходзяць бібліятэкі libvkd3d з рэалізацый Direct3D 12, libvkd3d-shader c транслятарам 4 і 5 мадэлі шэйдараў і libvkd3d-utils з функцыямі для спрашчэння партавання прыкладанняў Direct3D 12, а таксама набор дэманстрацыйных прыкладаў, уключаючы порт. пад ліцэнзіяй LGPLv3.

Бібліятэка libvkd3d падтрымлівае большую частку магчымасцяў Direct3D 12, уключаючы сродкі для графікі і вылічэнняў, чэргі і спісы каманд, дэскрыптары і дэскрыптары кучы, каранёвыя сігнатуры, неўпарадкаваны доступ, Sampler-ы, сігнатуры каманд, каранёвыя канстанты, непрамую *() і Copy*().

У libvkd3d-shader рэалізавана трансляцыя байткода 4 і 5 мадэляў шэйдараў у прамежкавае паданне SPIR-V. Падтрымліваюцца вяршынныя, піксельныя, тесселяционные, вылічальныя і простыя геаметрычныя шэйдары, серыялізацыя і дэсерыялізацыя каранёвай сігнатуры. З шэйдарных інструкцый рэалізаваны арыфметычныя, атамарныя і бітавыя аперацыі, аператары параўнання і кіравання струменем перадачы дадзеных, інструкцыі sample, gather і load, аперацыі неўпарадкаванага доступу (UAV, Unordered Access View).

У новай версіі:

  • Унесены шматлікія паляпшэнні ў кампілятар шэйдараў на мове HLSL (High-Level Shader Language), які прадстаўляецца пачынальна з DirectX 9.0. У тым ліку ў структурах і масівах палепшана падтрымка аб'ектных тыпаў HLSL, такіх як Texture2D, дададзена падтрымка ўбудаваных функцый dot(), ldexp() і lerp(), для 4 і 5 мадэляў шэйдараў дададзена падтрымка лагічных аператараў "and", "or" і "not", а таксама магчымасць прывядзення булева тыпаў.
  • Рэалізавана опцыя VKD3D_SHADER_COMPILE_OPTION_TYPED_UAV для загрузкі неўпарадкаванага прадстаўлення доступу (UAV) для шматкампанентных фарматаў SPIR-V (DXGI_FORMAT).

Крыніца: opennet.ru

Дадаць каментар