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

Пасля паўтары гадоў распрацоўкі праект Wine апублікаваў выпуск пакета vkd3d 1.3 з рэалізацыяй 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).

Сярод найболей значных навін у Vkd3d 1.3 вылучаюцца:

  • Дададзеная пачатковая падтрымка кампіляцыі і прэпрацэсінгу шэйдараў на мове HLSL (High-Level Shader Language), які прадастаўляецца пачынаючы з DirectX 9.0.
  • Дададзена падтрымка масіваў дэскрыптараў, вызначаных у мадэлі шэйдараў 5.1.
  • Забяспечана падтрымка аперацый з лікамі з якая плавае коскі падвойнай дакладнасці ў шэйдарах, непрамы адрасацыі для тесселяционных шэйдараў, экспарту трафарэтаў з шэйдараў, мадыфікатара шэйдараў «precise» і глабальных бар'ераў для рэсурсаў у памяці.
  • Рэалізавана магчымасць дызасэмблявання шэйдараў Direct3D з байткода ў асэмблерны паказ.
  • Дададзена падтрымка разбору старога фармату байткода Direct3D, які ўжываецца ў мадэлях шэйдараў Direct3D 1, 2 і 3.
  • У libvkd3d дададзены такія магчымасці Direct3D 12, як каранёвыя сігнатуры, лічыльнікі прагляду з неўпарадкаваным доступам, лагічныя аператары зліцця для высновы, рэжым адрасавання тэкстур mirror_once. Дададзена структура vkd3d_host_time_domain_info.

Крыніца: opennet.ru

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