С момента выхода Wine 5.0 прошел целый год, и разработчики представили стабильный релиз Wine 6.0. Обновлений много, всего в новой версии Wine более 8300 изменений. Главное, что стоит отметить, — поставка базовых модулей Wine в формате PE, бэкенд на основе графического API Vulkan для WineD3D, обновленная текстовая консоль, появление поддержки DirectShow и фреймворка Media Foundation.

На данный момент официально подтверждена нормальная работа 5049 Windows-приложений. С дополнительной настройкой Wine 6.0 позволяет запускать еще 4227 приложений. Работа некоторых из них нестабильна, но, в целом, под Wine работает гораздо больше 10 тысяч Windows-программ.

Так что же нового?

Появление модулей в формате РE

  • Основные DLL-библиотеки, которые обеспечивают работу Windows-приложений, переведены на использование формата PE вместо ELF. В число этих библиотек вошли NTDLL, KERNEL32, GDI32 и USER32. Это сделано для того, чтобы решить проблемы с поддержкой разных схем защиты от копирования, которые обычно сверяют идентичность системных модулей как на диске, так и в памяти.
  • Разработчики предложили новый способ прикрепления Unix-библиотек к PE-модулям для организации обращения к Unix-библиотекам из РЕ-файлов. Речь идет о необходимости вызова функций, не обрабатываемых через API Win32 по какой-либо причине. Дополнительные Unix-библиотеки определяются по «so»-файлу и имени как у PE-модулей.
  • Разработчики отказались от связывания модулей Winelib с библиотекой libwine.so, также отключена загрузка libwine.so во время выполнения. Модули, которые собраны для новой версии, не работают в предыдущих версиях. А вот собранные ранее модули без проблем будут работать в Wine 6.0, поскольку библиотека libwine включена в состав нового релиза.
  • Появилась поддержка сборки PE-модулей с сохранением отладочных данных в отдельном файле. Это дает возможность снизить размер устанавливаемых файлов.

Графика

  • Появилась поддержка отрисовки дуг, эллипсов и скругленных прямоугольников. Для этого используется API Direct2D.
  • В базовый каталог Wine устанавливается стандартный цветовой профиль sRGB для тех приложений, которым он нужен.
  • Если есть возможность обойтись без интерфейса пользователя, используется экранный драйвер null в качестве нормального графического драйвера.
  • Добавлена поддержка декодирования изображений в форматах DDS DDS (DirectDraw Surface) и JPEG-XR. Есть и кодирование в формате GIF.
  • В драйвере Vulkan добавлена поддержка спецификации графического API Vulkan 1.2.162. Обеспечено создание манифеста JSON и записи в реестре, используемых официальным загрузчиком Vulkan.
  • Плюс разработчики добавили поддержку расширяющихся линий, дополнительных стилей штриховки и новых типов записей в meta-файлах.

Direct3D

  • Для того, чтобы все работало, в новом релизе появился экспериментальный движок отрисовки. Он реализует трансляцию вызовов Direct3D 12 в графический API Vulkan. Для его нормальной работы требуется библиотека libvkd3d-shader, осуществляющая поддержку трансляции байткода 4 и 5 моделей шейдеров в промежуточное представление SPIR-V. Благодаря всему этому поддерживаются вершинные, пиксельные, тесселяционные, вычислительные и простые геометрические шейдеры, сериализация и десериализация корневой подписи.
  • Добавлены новые возможности Direct3D 11, включая независимые состояния смешивания, смешивание по нескольким источникам, маски для MSAA (Multi-Sample Anti-Aliasing) и дополнительные запросы возможностей.
  • Direct3D 9 получил поддержку режима мультисемплинг-сглаживания с учетом прозрачности (alpha-to-coverage).
  • Все хорошо с OpenGL-расширениями, включая поддержку EXT_framebuffer_multisample_blit_scaled и ARB_buffer_storage.
  • Расширен спектр поддерживаемых моделей видеокарт.
  • Что касается D3DX, то появилась возможность отрисовки текста через интерфейс ID3DXFont, плюс реализован интерфейс ID3D12ShaderReflection и функции получения параметров изображений, такие как 3DX10GetImageInfoFromMemory().

Ядро

  • У разработчиков получилось добавить режим совместимости с разными версиями Windows, благодаря чему приложение получает нужный ему номер версии ОС.
  • Добавлена поддержка файлов конфигурации для win9x.
  • Появились новые объекты и функции ядра NT, которые нужны для работы систем античит.
  • Добавлен драйвер NetlO.sys, который используется для организации доступа к сети драйверов, защищенных от копирования.
  • В ntdll добавлена поддержка AVX-регистров x86.

Рабочий стол и интерфейс пользователя

  • В winex11.drv и обработчик настроек XRandR 1.4 добавлена поддержка режимов дисплея для разных ориентаций экрана.
  • В API X11, OpenGL и Vulkan обеспечивается единое представление графических адаптеров.
  • Добавлена поддержка свойства _GTK_WORKAREAS для корректной раскладки элементов рабочего стола в многомониторных конфигурациях.

Ввод информации

  • В новом релизе появилась поддержка устройств и сообщений Rawinput.
  • Добавлен драйвер ядра Windows для доступа к USB-устройствам, который основан на библиотеке LibUSB.
  • Для более точного позиционирования в играх реализовано сохранение истории позиции мыши.
  • Добавлен маппинг кнопок на игровых контроллерах.
  • Появились уведомления о подключении новых устройств Plug&Play.

Сеть

  • Обновлена версия движка Gecko до версии 2.47.2.
  • Добавлен API WebSocket.
  • Оптимизирована поддержка сервисов LDAP и Active Directory.

Звук и видео

  • В Wine кардинально переработана реализация фреймворка Media Foundation, в котором появилась начальная поддержка компонентов Media Session, Streaming Audio Renderer (SAR), Video Renderer, EVR mixer, Topology Loader и Media Engine.
  • Предложена более полная реализация библиотеки AMStream (ActiveMovie Multimedia Streaming).
  • Появилось много нового в Video Mixing Renderer. Например, добавлена поддержка безоконного режима (windowless) и режима без отрисовки (renderless), возможность автоматической подгонки размера видео под размер окна, аппаратного ускорения преобразования цветового пространства и отображения рамки (letterboxing) вокруг содержимого для достижения корректного соотношения сторон.
  • Добавлены новые фильтры DirectShow File Writer и DirectX Media Object (DMO) Wrapper.
  • А еще добавлены звуковые библиотеки XACT3 Engine (Cross-platform Audio Creation Tool, xactengine3_*.dll), реализованные через FAudio.

C Runtime

  • В библиотеках реализована полная поддержка программ в формате PE, позволившая исключить MinGW runtime из зависимостей.
  • Все встроенные программы и Winegcc переведены на использование C runtime UCRTBase.
  • В C runtime добавлена еще и поддержка локалей Windows c использованием кодировки UTF-8.

Разработка

  • Для обеспечения совместимости с отладчиками для Windows в Winegcc добавлена поддержка генерации файлов PDB при сборке DLL в формате PE.
  • Добавлена возможность генерации библиотеки импорта во время сборки DLL при указании опции ‘-Wl,–out-implib’.
  • Добавлена поддержка LLVM-MinGW для кросс-компиляции PE-файлов.
  • Появилась поддержка не привязанных к конкретному каталогу установок WineLib.

Встроенные приложения

  • Появилась возможность настройки версии окружения Windows напрямую из командной строки.
  • Улучшена обработка папок оболочки. Появились стандартные папки Downloads и Templates.
  • Для подключения внешних накопителей используется интерфейс Dbus.
  • Реализована утилита WHOAMI для показа имени текущего пользователя.

С полным списком изменений можно ознакомиться на сайте разработчиков.

Let’s block ads! (Why?)

Read More

Recent Posts

Apple возобновила переговоры с OpenAI и Google для интеграции ИИ в iPhone

Apple возобновила переговоры с OpenAI о возможности внедрения ИИ-технологий в iOS 18, на основе данной операционной системы будут работать новые…

2 дня ago

Российская «дочка» Google подготовила 23 иска к крупнейшим игрокам рекламного рынка

Конкурсный управляющий российской «дочки» Google подготовил 23 иска к участникам рекламного рынка. Общая сумма исков составляет 16 млрд рублей –…

2 дня ago

Google завершил обновление основного алгоритма March 2024 Core Update

Google завершил обновление основного алгоритма March 2024 Core Update. Раскатка обновлений была завершена 19 апреля, но сообщил об этом поисковик…

2 дня ago

Нейросети будут писать тексты объявления за продавцов на Авито

У частных продавцов на Авито появилась возможность составлять текст объявлений с помощью нейросети. Новый функционал доступен в категории «Обувь, одежда,…

2 дня ago

Объявлены победители международной премии Workspace Digital Awards-2024

24 апреля 2024 года в Москве состоялась церемония вручения наград международного конкурса Workspace Digital Awards. В этом году участниками стали…

3 дня ago

Яндекс проведет гик-фестиваль Young Con

27 июня Яндекс проведет гик-фестиваль Young Con для студентов и молодых специалистов, которые интересуются технологиями и хотят работать в IT.…

3 дня ago