Выйшаў Wine 5.0

Выйшаў Wine 5.021 студзеня 2020 года адбыўся афіцыйны рэліз стабільнай версіі віно 5.0 - вольнай прылады для запуску натыўных Windows-праграм у UNIX-асяроддзі. Гэта альтэрнатыўная, свабодная рэалізацыя Windows API. Рэкурсіўны акронім WINE азначае "Wine Is Not an Emulator".

За гэтай версіяй - каля года распрацоўкі і больш за 7400 асобных змен. Вядучы распрацоўшчык Аляксандр Джуліярд (Alexandre Julliard) вылучае чатыры:

  • Падтрымка модуляў у фармаце PE. Гэта вырашае праблемы з рознымі схемамі абароны ад капіравання, якія праводзяць зверку сістэмных модуляў на дыску і ў памяці.
  • Падтрымка некалькіх манітораў і некалькіх GPU, уключаючы дынамічнае змяненне налад.
  • Рэімплементацыя XAudio2 на базе праекта FAudio, адкрытай рэалізацыі гукавых бібліятэк DirectX. Пераход на FAudio дазваляе дабіцца больш высокай якасці гуку ў гульнях, задзейнічаць змешванне гучнасці, пашыраныя гукавыя эфекты і інш.
  • Падтрымка Vulkan 1.1.


Больш падрабязна аб ключавых новаўвядзеннях.

Модулі PE

Пры наяўнасці кампілятара MinGW большасць модуляў Wine зараз збіраюцца ў фармаце выкананых файлаў PE (Portable Executable, бінарны фармат Windows) замест ELF.

Выкананыя файлы PE зараз капіююцца ў каталог ~/.wine замест ужывання фіктыўных DLL-файлаў, што робіць прыкладанні больш падобнымі на рэальныя ўсталёўкі Windows.

Пакуль у фармат PE канвертаваны не ўсе модулі. Праца працягваецца.

Графічная падсістэма

Як ужо было сказана вышэй, дададзеная падтрымка працы з некалькімі маніторамі і графічнымі адаптарамі.

Драйвер Vulkan абноўлены да спецыфікацый Vulkan 1.1.126.

Акрамя таго, бібліятэка WindowsCodecs зараз падтрымлівае дадатковыя растравыя фарматы, уключаючы фарматы з індэксаванай палітрай.

Direct3D

Поўнаэкранныя прыкладанні Direct3D зараз блакуюць выклік скрынсэйвера.

Для прыкладанняў DXGI рэалізавана магчымасць пераключэння паміж поўнаэкранным і аконным рэжымам пры дапамозе стандартнай камбінацыі Alt+Enter.

Пашыраны магчымасці Direct3D 12: падтрымка пераключэння паміж поўнаэкранным і аконным рэжымам, змены рэжымаў экрана, паданні з маштабаваннем і інтэрвалы замены буфераў адмалёўкі (swap interval). Усе гэтыя функцыі ўжо былі рэалізаваны для папярэдніх версій Direct3D API.

Удзельнікі праекта старанна папрацавалі і ліквідавалі літаральна сотні багаў, так што палепшана апрацоўка Wine розных памежных сітуацый. Сярод іх сэмплінг рэсурсаў 2D у сэмплер 3D і наадварот, прымяненне якія выходзяць за дапушчальныя дыяпазоны зыходных значэнняў для тэстаў празрыстасці і глыбіні, адмалёўка з адлюстраванымі тэкстурамі і буферамі, выкарыстанне некарэктных кліпераў (аб'ект DirectDraw) і многае іншае.

Зніжаны памер неабходнай адраснай прасторы пры загрузцы 3D-тэкстур, сціснутых метадам S3TC (замест загрузкі цалкам, тэкстуры грузяцца кавалкамі).

Для старых прыкладанняў DirectDraw унесены розныя паляпшэнні і выпраўленні, злучаныя з разлікам асвятлення.

Пашыраная база графічных карт, якія распазнаюцца ў Direct3D.

Сетка і крыптаграфія

Рухавічок Gecko абноўлены да версіі 2.47.1 для падтрымкі сучасных інструментаў. Рэалізаваны шэраг новых HTML API.

У MSHTML рэалізавана падтрымка элементаў SVG.

Дададзена шмат новых функцый VBScript (напрыклад, апрацоўшчыкі памылак і выключэнняў).

Рэалізавана магчымасць атрымання параметраў налады HTTP-проксі праз DHCP.

У крыптаграфічнай частцы рэалізавана падтрымка крыптаграфічных ключоў на аснове эліптычных крывых (ECC) праз GnuTLS, дабаўлена магчымасць імпарту ключоў і сертыфікатаў з файлаў у фармаце PFX, дабаўлена падтрымка схемы фарміравання ключа на аснове пароля PBKDF2.

Выйшаў Wine 5.0
Adobe Photoshop CS6 пад Wine

Іншыя істотныя новаўвядзенні

  • Падтрымка спінлакоў ядра NT.
  • Дзякуючы заканчэнню патэнта на кампрэсію тэкстур DXTn і S3 стала магчыма ўлучыць іх у дэфолтную рэалізацыю.
  • Падтрымка ўстаноўкі драйвераў plug-and-play.
  • Розныя паляпшэнні DirectWrite.
  • Палепшаная падтрымка Windows Media Foundation API.
  • Лепшая сінхранізацыя прымітываў дзякуючы рэалізацыі на ф'ютэксах.
  • Сумеснае выкарыстанне Wine-Mono для эканоміі месца замест апенсорснай рэалізацыі. NET на кожны ~/.wine.
  • Падтрымка Unicode 12.0 і 12.1/XNUMX.
  • Рэалізацыя пачатковага HTTP-сэрвісу (HTTP.sys) у якасці замены Winsock API і IIS, у выніку чаго прадукцыйнасць стала вышэй, чым у Windows Sockets API.
  • Лепшая сумяшчальнасць з адладчыкамі Windows.
  • Лепшая падтрымка LLVM MinGW і паляпшэння крос-кампіляцыі WineGCC.

Можна яшчэ згадаць паляпшэнні ў карыстацкім інтэрфейсе. Напрыклад, згорнутыя вокны зараз адлюстроўваюцца з дапамогай радка загалоўка, а не піктаграмамі ў стылі Windows 3.1. Палепшана падтрымка гульнявых кантролераў, у тым ліку hat switch, руль і педалі.

З Wine выдалены ўбудаваныя дэкодэры AVI, MPEG-I і WAVE, замест якіх зараз выкарыстоўваюцца сістэмныя GStreamer ці QuickTime.

Дададзена магчымасць ужывання адладчыка з Visual Studio для выдаленай адладкі прыкладанняў, запушчаных у Wine, часткова рэалізаваная бібліятэка DBGENG (Debug Engine), з збіраных для Windows файлаў выдаленая залежнасць ад libwine.

Для аптымізацыі прадукцыйнасці розныя функцыі працы з часам перакладзены на выкарыстанне высокапрадукцыйных сістэмных функцый працы з таймерам, што дазволіла зменшыць накладныя выдаткі ў цыкле адмалёўкі шматлікіх гульняў. Зроблены і іншыя аптымізацыі прадукцыйнасці.

Поўны спіс змен гл. тут.

Зыходны код Wine 5.0, люстэрка
Бінарнікі для розных дыстрыбутываў
Дакументацыя

На сайце AppDB вядзецца база Windows-прыкладанняў, сумяшчальных з Wine. Вось лідэры па колькасці галасоў:

  1. Final Fantasy XI
  2. Adobe Photoshop CS6 (13.0)
  3. World of warcraft 8.3.0
  4. EVE Online Current
  5. Magic: The Gathering Online 4.x

Можна меркаваць, што гэтыя прыкладанні ў Wine запускаюць часцей за ўсё.

Заўвага. Рэліз Wine 5.0 прысвечаны памяці Юзэфа Кучы (Józef Kucia), які трагічна памёр у жніўні 2019 года ва ўзросце 30 гадоў, даследуючы пячору на поўдні Польшчы. Юзэф быў важным удзельнікам распрацоўцы Direct3D Wine, а таксама вядучым аўтарам праекта vkd3d. За час працы над Wine ён унёс больш за 2500 патчаў.

Выйшаў Wine 5.0

Крыніца: habr.com

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