Кандыдат у рэлізы Wine 8.0 і рэліз vkd3d 1.6

Пачалося тэсціраванне першага кандыдата ў рэлізы Wine 8.0, адкрытай рэалізацыі WinAPI. Кодавая база пераведзена на стадыю замаразкі перад рэлізам, які чакаецца ў сярэдзіне студзеня. У параўнанні з выпускам Wine 7.22 зачынена 52 справаздачы аб памылках і ўнесена 538 змен.

Найбольш важныя змены:

  • Пакет vkd3d з рэалізацыяй Direct3D 12, якая працуе праз трансляцыю выклікаў у графічны API Vulkan, абноўлены да версіі 1.6.
  • Праведзена аптымізацыя пераўтваральнікаў сістэмных выклікаў (thunk) для Vulkan і OpenGL.
  • У WinPrint пашырана падтрымка апрацоўшчыкаў вываду на друк (Print processor).
  • Палепшана панэль кіравання джойсцікам.
  • Завершана праца па забеспячэнні падтрымкі тыпу 'long' у кодзе функцыі printf.
  • Закрыты справаздачы пра памылкі, звязаныя з працай гульняў: Tom Clancy's Rainbow Six: Vegas 2, The Void, Ragnarok Online, Drakan, Star Wars, Colin McRae, X-COM.
  • Закрыты справаздачы аб памылках, звязаных з працай прыкладанняў: TMUnlimiter 1.2.0.0, MDB Viewer Plus, Framemaker 8, Studio One Professional 5.

Дадаткова можна адзначыць публікацыю праектам Wine пакета vkd3d 1.6 з рэалізацыяй 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:

  • Рэалізавана пачатковая падтрымка вылічальных шэйдараў.
  • Палепшана падтрымка ініцыялізацыі і прызначэнні састаўных аб'ектаў, такіх як структуры і масівы.
  • Дададзена магчымасць загрузкі і захавання рэсурсаў тэкстур, выкарыстоўваючы неўпарадкаваны доступ (UAV).
  • Дададзена падтрымка атрыбутаў функцый і рэалізаваны ўбудаваныя функцыі asuint(), length(), normalize().
  • Дададзена падтрымка модуляў для вылічэнняў з якая плавае коскі.
  • Рэалізаваны сцяг VKD3D_SHADER_DESCRIPTOR_INFO_FLAG_UAV_ATOMICS для індыкацыі атамарных аперацый над дэскрыптарамі неўпарадкаванага прадстаўлення доступу (UAV).

Крыніца: opennet.ru

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