Выпуск праекта DXVK 1.3 з рэалізацыяй Direct3D 10/11 па-над API Vulkan

Сфарміраваны выпуск праслойкі DXVK 1.3, якая прадстаўляе рэалізацыю DXGI (DirectX Graphics Infrastructure), Direct3D 10 і Direct3D 11, якая працуе праз трансляцыю выклікаў у API Vulkan. Для выкарыстання DXVK патрабуецца наяўнасць драйвераў з падтрымкай API Vulcan, Такіх як
AMD RADV 18.3/415.22, NVIDIA 19.0, Intel ANV XNUMX і АМДВЛК.

DXVK можа ўжывацца для запуску 3D-прыкладанняў і гульняў у Linux пры дапамозе Wine, выступаючы ў якасці больш высокапрадукцыйнай альтэрнатывы убудаванай у Wine рэалізацыі Direct3D 11, якая працуе па-над OpenGL. У некаторых гульнях прадукцыйнасць звязкі Wine+DXVK адрозніваецца ад запуску ў Windows за ўсё на 10-20%, у той час як пры выкарыстанні рэалізацыі Direct3D 11 на базе OpenGL прадукцыйнасць зніжаецца больш істотна.

Дададзеныя паляпшэнні:

  • Рэалізавана аптымізацыя з выкарыстаннем інструкцыі "discard" у шэйдарах, заснаваная на Vulkan-пашырэнні VK_EXT_shader_demote_to_helper_invocation і здольная павысіць прадукцыйнасць у некаторых гульнях. Для выкарыстання аптымізацыі патрабуецца абнавіць кампанент winevulkan і драйверы (Intel да Mesa 19.2-git і NVIDIA да прапрыетарнага драйвера 418.52.14-beta, драйверы AMD пакуль не падтрымліваюць пашырэнне VK_EXT_shader_demote_to_helper_invocation);
  • Забяспечана асінхронная апрацоўка вываду выніку рэндэрынгу на экран (стадыя прэзентацыя). Для памяншэння затрымак у асноўным струмені рэндэрынгу, апрацоўка высновы зараз выконваецца ў струмені перадачы каманд (command submission thread). Выйгрыш у прадукцыйнасці ад асінхроннай апрацоўкі асабліва прыкметны пры выснове з высокай частатой кадраў і пры рэсурсаёмістай перадачы каманд. З гульняў у якіх назіраецца прырост прадукцыйнасці адзначаецца Quake Champions пры запуску на сістэмах з GPU AMD;
  • З'явілася магчымасць пачатковай загрузкі рэсурсаў з выкарыстаннем рухавікоў капіявання (copy engine), якія прадстаўляюцца прыладай з падтрымкай Vulkan (пакуль падтрымліваецца толькі драйверамі AMDVLK і NVIDIA). Новая магчымасць дазваляе крыху палепшыць узгодненасць часу кадра ў гульнях, якія загружаюць вялікі лік тэкстур падчас гульні;
  • Палепшана вядзенне лога памылак, якія ўзнікаюць ва ўмовах недахопу памяці;
  • Палепшана сумяшчальнасць з MSVC (Microsoft Visual C++);
  • Прыбраныя паўтараюцца цыклічныя праверкі падчас вываду, што можа значна знізіць нагрузку на CPU у сцэнарах з абмежаванымі GPU;
  • Ухіленая праблема з падвойным мапінгам субрэсурсаў малюнкаў, якая выяўлялася ў гульні Final Fantasy XIV;
  • Ухілены крах з-за некарэктных паводзін метаду RSGetViewport, які выяўляўся ў гульні Scrap Mechanic.

Крыніца: opennet.ru

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