Как стать автором
Обновить

Релиз Wine 10.0

Время на прочтение5 мин
Количество просмотров9.9K

21 января 2025 года вышла новая стабильная версия открытой реализации программного интерфейса Windows Win32 API для ОС Linux Wine 10.0. С прошлогоднего релиза Wine 9.0 в проект внесено около 6 тыс. изменений от 1950 контрибуторов, включая полную поддержку архитектуры ARM64EC, улучшенное масштабирование на экранах с высокой плотностью пикселей (HiDPI), включение по умолчанию драйвера Wayland, реализацию панелей для настройки экрана и джойстика, альтернативный мультимедийный бэкенд на базе FFmpeg, начальный драйвер Bluetooth, обновленный DXVK и улучшения в поддержки Direct3D, поддержку Vulkan 1.4, возможность эмуляции переключения видеорежимов.

В проекте Wine подтверждена полноценная работа 5372 программ для Windows (год назад 5336), а также 4435 приложений (год назад 4397) стабильно работают при дополнительных настройках и внешних dll. Также у 4020 программных продуктов (год назад 3943) наблюдаются небольшие проблемы в работе, которые не мешают использованию их основных функций.

По информации OpenNET, основные изменения и доработки в Wine 10.0:

  • реализован интерфейс для эмуляции 64-разрядных систем x86. При использовании ARM64EC сам Wine выполняется как есть, а эмуляция применяется только для кода приложений x86–64. Библиотека с эмулятором пока не включена в основной состав Wine, но для запуска кода x86–64 в окружении ARM64 можно использовать внешний эмулятор FEX, собранный с поддержкой ARM64EC;

  • для поддержки ARM64 необходимо использование в системе страниц памяти размером 4КБ, как того требует ABI Windows (запуск в окружениях с ядрами Linux, использующими страницы памяти 16K или 64K пока не поддерживается);

  • в драйвер для графического API Vulkan добавлена поддержка спецификации Vulkan 1.4 (в Wine 9.0 поддерживался Vulkan 1.3.272). Добавлена поддержка расширений Vulkan для кодирования и декодирования видео;

  • при использовании бэкенда X11 реализована возможность отрисовки дочерних окон Vulkan для приложений, использующих подобные окна для вывода 3D‑контента (ранее подобная возможность была доступна только для OpenGL);

  • в библиотеку GdiPlus добавлена поддержка механизма связывания шрифтов («Font Linking»), позволяющего при отображении текста задействовать несколько шрифтов, если отсутствуют шрифты по отдельности, охватывающие все встречающиеся в тексте символы;

  • добавлен экспериментальный механизм эмуляции modesetting, позволяющий эмулировать переключение видеорежимов без фактического изменения настроек экрана. Видимость изменения разрешения экрана без переключения видеорежима создаётся через расширение и масштабирование окон;

  • добавлен новый апплет Desktop Control Panel (desk.cpl) с реализацией интерфейса управления настройками дисплея (например, можно изменять виртуальное разрешение десктопа или настраивать эмулируемые параметры дисплея);

  • добавлена возможность сброса настроек экрана в значения по умолчанию в случае невозможности восстановить состояние после аварийного завершения процесса;

  • для Direct3D 9 и более старых версий добавлен графический конвейер фиксированных функций (в старых Direct3D предоставлялись только предопределённые графические операции, которые нельзя было изменять), реализованный при помощи языка шейдеров HLSL и позволяющий эмулировать фиксированные функции при отрисовке через API Vulkan или OpenGL;

  • при отрисовке с использованием Vulkan задействованы Vulkan‑расширения для динамического изменения состояния графического конвейера, позволяющие сократить подвисания в играх;

  • добавлен альтернативный бэкенд glsl‑vkd3d для шейдеров GLSL, использующий vkd3d‑shader;

  • предоставлена начальная поддержка компиляции эффектов Direct3D, используя vkd3d‑shader;

  • в библиотеке D3DX9 реализована возможность генерации MIP‑текстур (MipMap) при загрузке объёмных текстур. Добавлена поддержка форматов представления цвета 64bpp RGBA и 48bpp RGB в изображениях PNG, а также форматов X8L8V8U8, A2W10V10U10, A8P8, V16U16 и Q16W16V16U16;

  • в качестве альтернативы бэкенду на базе GStreamer реализован новый мультимедийный бэкенд, основанный на использовании FFmpeg и пригодный для обеспечения работы фреймворка Media Foundation;

  • улучшена реализация API Media Foundation, которая теперь лучше сочетается с приложениями, зависящими от компонентов демультиплексирования и декодирования;

  • в API DirectMusic добавлена поддержка загрузки файлов MIDI;

  • добавлен апплет Joystick Control Panel (joy.cpl) c реализацией настроек для джойстика;

  • внесены улучшения, связанные с устройствами управления указателем (тачпады, мыши), использующими протокол HID (Human Interface Device). Добавлен драйвер mouhid.sys для HID‑устройств. Реализован корректный разбор составных устройств ввода и обеспечена передача информации о них в Windows‑приложения как о раздельных устройствах;

  • реализовано размещение некоторых внутренних структур библиотеки user32 в разделяемой памяти, что повысило производительность и снизило нагрузку на Wine Server;

  • в winex11 добавлена поддержка обработки событий XInput2 в привязке к отдельным окнам;

  • реализована корректная поддержка клавиатур с раскладкой Dvorak;

  • улучшена поддержка протокола обмена ключами Диффи‑Хеллмана (DH). Добавлена возможность настройки и получения параметров DH. Реализованы обработчики для создания пар из открытого и закрытого ключей;

  • обеспечено использование добавочного заполнения OAEP (Optimal Asymmetric Encryption Padding) вместе с алгоритмом RSA;

  • в API DirectPlay реализована поддержка сетевых сеансов;

  • налажена обработка состояний асинхронного ввода/вывода при работе в режиме WoW64 (64-bit Windows‑on‑Windows), позволяющем выполнять 32-разрядные Windows‑приложения в 64-разрядных Unix‑системах;

  • добавлена поддержка загрузки ODBC‑драйверов к СУБД, собранных для Windows;

  • для платформы ARM реализована полная поддержка RPC/COM, C++ RTTI (Run‑Time Type Information) и исключений C++;

  • в C runtime в ANSI‑функциях реализована поддержка кодировки UTF-8;

  • расширены возможности движка MSHTML. Добавлена поддержка прототипов и конструкторов объектов. В JavaScript‑движок добавлен новый интерфейс связывания объектов для MSHTML. Встроенные функции MSHTML преобразованы в корректные объекты JavaScript. Улучшен сборщик мусора для JavaScript, который теперь охватывает все контексты выполнения скрипта в потоке. Добавлена поддержка JavaScript‑объектов ArrayBuffer и DataView;

  • в систему непрерывной интеграции на базе Gitlab добавлена поддержка статического анализа с использованием Clang и отчётов о прохождении тестов JUnit;

  • в состав встроена библиотека Capstone 5.0.3, через которую реализовано дизассемблирование в отладчике WineDb;

  • обновлены до новых версий компоненты: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 и Zlib 1.3.1.

Теги:
Хабы:
Всего голосов 12: ↑12 и ↓0+16
Комментарии10

Другие новости

Истории

Работа

Ближайшие события

4 – 5 апреля
Геймтон «DatsCity»
Онлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область