Апублікаваны эксперыментальны выпуск адкрытай рэалізацыі Win32 API – Wine 11.17. З моманту выпуску 11.16 былі закрыты 44 справаздачы аб памылках і ўнесена 387 змен.
Найбольш важныя змены:
- Дададзена пачатковая падтрымка эмуляцыі рэжымаў экрана, якая дазваляе запускаць поўнаэкранныя прыкладанні і гульні са сваім віртуальным дазволам, якое пры фактычнай адмалёўцы маштабуецца з улікам DPI наяўнага манітора. Напрыклад, старая гульня можа выкарыстоўваць дазвол 640×480, але паказвацца на экране з вялікім дазволам з захаваннем прапорцый.
- Дададзена падтрымка функцый RtlGetSystemPreferredUILanguages і RtlGetUserPreferredUILanguages для атрымання спісу упадабаных моў у інтэрфейсе, выстаўленых у рэестры для ўсёй сістэмы і асобных карыстачоў, і па змаўчанні фармаваных на аснове параметраў лакалі. Таксама дададзены функцыі RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages, SetThreadPreferredUILanguages для вызначэння і выстаўленні спісу упадабаных моў на ўзроўні працэсаў і струменяў.
- Убудаваны пакет Vkd3d з рэалізацыяй Direct3D 12 абноўлены да версіі 2.1.
- Закрытыя справаздачы пра памылкі, звязаныя з працай прыкладанняў: certmgr.exe, Signtools, Advanced SystemCare 6.4, Autodesk 3ds Max 9, SketchUp 2021, Nokia S60 5th Edition SDK 1.0, PDFCreator, SafeDisc v2.05.030 1.0.2.1, PS4 Remote Play 2.x, MigrosBank EBanking 8.2.x, Sparda Bank SecureApp 1.x, MSXML 6.0, Sennheiser Wireless Systems Manager 4.4, Netscape Navigator 3.04, xEdit.
- Закрыты справаздачы пра памылкі, звязаныя з працай гульняў: GTA: Vice City, GTA: San Andreas, Tetris JR, Worms Blast, Horizon Chase Turbo, Star Wars: Knights of the Old Republic I/II, GunBound, Marathon, Ground Control, Ankh - Anniversary Edition, Clive.
Дадаткова можна адзначыць новыя выпускі звязаных з Wine праектаў:
- Сфарміраваны выпуск праекта Wine Staging 11.17, які прадстаўляе пашыраныя зборкі Wine, якія ўключаюць не поўнасцю гатовыя або рызыкоўныя патчы, пакуль непрыдатныя для прыняцця ў асноўную галінку Wine. У параўнанні з Wine у Wine Staging прадастаўляецца 279 дадатковых патчаў. У новым выпуску Wine Staging ажыццёўлена сінхранізацыя з кодавай базай Wine 11.17 і абноўлены код vkd3d. У асноўны склад Wine перанесены патч, які рэалізуе ў бібліятэцы kernel32.dll функцыю SetThreadpoolTimerEx.
- Апублікаваў выпуск пакета vkd3d 2.1 з рэалізацыяй Direct3D 12, якая працуе праз трансляцыю выклікаў у графічны API Vulkan. У склад пакета ўваходзяць бібліятэкі libvkd3d з рэалізацый Direct3D 12, libvkd3d-shader c транслятарам мадэляў шэйдараў і libvkd3d-utils з функцыямі для спрашчэння партавання прыкладанняў Direct3D 12, а таксама набор дэманстрацыйных прыкладаў, уключаючы порт glxge libvkd3d падтрымлівае большую частку магчымасцяў Direct3D 12, уключаючы сродкі для графікі і вылічэнняў, чэргі і спісы каманд, дэскрыптары і дэскрыптары кучы, каранёвыя сігнатуры, неўпарадкаваны доступ, Sampler-ы, сігнатуры каманд, каранёвыя канстанты, непрамую (indirect). У libvkd3d-shader рэалізавана трансляцыя байт-кода мадэляў шэйдараў у прамежкавае паданне SPIR-V.
У новай версіі vkd3d:
- У рэалізацыю мовы шэйдараў HLSL дададзена падтрымка арыфметычных аперацый з тыпам "half" пры выкарыстанні 4 і 5 мадэляў шэйдараў.
- У кампілятары шэйдараў HLSL узмоцнены праверкі ўваходных і выходных дадзеных, рэалізаваны праход для выдалення невыкарыстоўваных глабальных зменных (uniform) у 1-3 мадэлях шэйдараў.
- У бэкендзе для мовы шэйдараў GLSL (OpenGL Shading Language) рэалізавана падтрымка ўскоснага адрасавання ўваходных рэгістраў, атамарных аперацый параўнання і цэлалікавага складання, бітавых аперацый і бар'ераў, аперацый загрузкі / захавання для UAV (Unordered Access View) і агульнай памяці групы патокаў.
- Палепшана падтрымка старога бінарнага фармату шэйдараў Direct3D. Рэалізаваны інструкцыі "sub" і "break_cmp", мадыфікатары інструкцый "_x2", "_x4", "_x8", _'d2,' "_d4" і "_d8", а таксама мадыфікатары аперанд "_bias", "_x2" і "_bx2".
- Пры пераўтварэнні ў прамежкавае ўяўленне шэйдараў SPIR-V з'явілася падтрымка аперацый канвертавання лікаў з якая плавае коскі ў 64-разрадныя цэлыя лікі.
- У libvkd3d-utils пашырана падтрымка API рэфлексіі шэйдараў. Рэалізаваны інтэрфейсы ID3D10ShaderReflection, ID3D10ShaderReflection1 і ID3D11ShaderReflection, а таксама большасць метадаў інтэрфейсаў ID3D12ShaderReflection і ID3D12ShaderReflectionType.
- У vkd3d-compiler дададзена опцыя "—allow-half-globals", а ў libvkd3d-shader сцяг VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS для кампіляцыі глабальных зменных з тыпам "half" у паданне з тыпам.
- Сфарміраваны выпуск праслойкі DXVK 3.1, якая прадстаўляе рэалізацыю DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 і 11, якая працуе праз трансляцыю выклікаў у API Vulkan. Для выкарыстання DXVK патрабуецца наяўнасць драйвераў з падтрымкай API Vulkan 1.4, такіх як NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 і Intel ANV 25.1. DXVK можа прымяняцца для запуску 3D-прыкладанняў і гульняў у Linux пры дапамозе Wine, выступаючы ў якасці больш высокапрадукцыйнай альтэрнатывы убудаваных у Wine рэалізацый Direct3D, якія працуюць па-над OpenGL.
У новай версіі:
- Дададзена падтрымка інкрыментальнай адмалёўкі ў DXGI, рэалізаваная пры дапамозе Vulkan-пашырэння VK_KHR_incremental_present і якая дазваляе абнаўляць на экране толькі якія змяніліся вобласці. Новая магчымасць вырашыла праблемы з адмалёўкай у VirtualDJ і розных гульнявых лаўнчарах, такіх як Ubisoft Connect.
- Дададзена падтрымка стварэння прадстаўленняў аб'ектаў адмалёўкі (render target view) напрамую ў буферах, што вырашыла праблемы са з'яўленнем артэфактаў пры адмалёўцы аблокаў у некаторых гульнях на рухавічку Frostbite, такіх як Battlefield 3.
- Рэалізавана загрузка бібліятэк для падтрымкі спецыфічных для GPU Intel пашырэнняў (vendor extensions).
- Вырашаны праблемы ў гульнях Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge, RaceRoom Racing Experience.
- Апублікаваны выпуск праекта D7VK 2.2, які развівае рэалізацыю графічных API Direct3D 3, 5, 6 і 7, прапанаваных кампаніяй Microsoft у 1996, 1997, 1998 і 1999 гадах. D7VK працуе праз трансляцыю выклікаў у API Vulkan і дазваляе пры дапамозе Wine запускаць у Linux рэтра гульні, завязаныя на API Direct3D 3, 5, 6 і 7. Код праекту напісаны на мове C++ і распаўсюджваецца пад ліцэнзіяй Zlib. У якасці асновы пры распрацоўцы выкарыстаны код бэкенда d3d9 ад праекта DXVK - D7VK пераўтворыць API Direct3D 3, 5, 6 і 7 у выклікі Direct3D 9, якія затым транслююцца ў API Vulkan. Распрацоўнік не мае намеру дамагацца ўключэння D7VK у склад DXVK, як гэта было з рэалізацыямі Direct3D 8 і Direct3D 9 па-над Vulkan.
У новай версіі ажыццёўлены пераход на працу па-над выпускам DXVK 3.1, перапрацавана праверка выкананых буфераў D3D3 і падлік спасылак (refcounting) для прылад D3D3, палепшана апрацоўка тэкстур для D3D5/3. Унесены выпраўленні, якія паляпшаюць падтрымку гульняў: Palantírs in The Lord of the Rings, Resident Evil 2 і Frogger.
Крыніца: opennet.ru
