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

Праект Wine апублікаваў выпуск пакета vkd3d 1.7 з рэалізацыяй 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):
    • Дададзена магчымасць выкліку карыстацкіх функцый і выкарыстанні масіваў у якасці параметраў карыстацкіх функцый.
    • Дададзена падтрымка параметраў SV_DispatchThreadID, SV_GroupID і SV_GroupThreadID.
    • Дададзеныя ўбудаваныя функцыі all(), distance(), exp(), exp2(), frac(), lit(), reflect(), sin(), cos(), smoothstep(), sqrt(), rsqrt() , step(), transpose().
    • Дададзена пачатковая падтрымка тыпаў нізкай дакладнасці з якая плавае коскі, такіх як «min16float».
  • Значна палепшана падтрымка профіляў мадэлі шэйдараў Direct3D 1/2/3.
  • Дададзены публічны API для разбору (vkd3d_shader_parse_dxbc) і серыялізацыі (vkd3d_shader_serialize_dxbc) бінарных дадзеных DXBC.

Крыніца: opennet.ru

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