company_banner

Вышел Wine 6.0: что нового?


    С момента выхода 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 для показа имени текущего пользователя.

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

    Selectel
    ИТ-инфраструктура для бизнеса

    Комментарии 32

      +7
      Уже шестая версия? Вроде только недавно до первой добрался. Как быстро летит время.
        +12
        Помню, ждали первую версию, и говорили, что вендекапец настанет с её появлением… Ошиблись.
          +1

          Ну для кого-то персонально и настал. Я в своё время, когда убедился, что нужный мне музыкальный софт (который я позже заменил open source решениями) отлично работает из под Wine, то избавился от дуал бута, и за все эти года (наверное уж с десятилетие) видел настоящий шиндовс только «на картинках», ну или где-нибудь на чужом компьютере.

            0
            а можно немного подробнее про муз софт? VST плагины работают без проблем?
              0

              Ну я уже всех не помню, это было лет 8-9 назад. В качестве DAW Reaper, из VST плагинов GuitarRig, TRex, эквалайзеры, компрессоры, ревербераторы, набор плагинов Wave, Native Instruments, какой-то очень известный барабанный сэмплер, забыл название, я всех уже и не вспомню, и имена не помню все. Какие-то, куда всякого DRM и прочей «защиты от пользователя» напихали, могут и не заработать без плясок. Но те, что мне были нужны, все работали.

        –9

        Честно говоря, не понимаю, зачем они изобретают свой велосипед для D3D11, когда есть DXVK.

          +5
          А кто сказал, что они изобрели свой велосипед, а не интегрировали существующий?
            0
            • DXVK на C++, а Wine использует C
            • DXVK ориентирован на запуск игр на новом железе, а Wine ставит во главу угла более полноценную поддержку программ любого назначения на большом количестве устройств
              0
              Довольно слабая аргументация, надо сказать. Тормозной и неполноценный (баги не закрываются годами) DirectX на неудобном языке (оригинал, судя по всему, написан на C++) с трансляцией в устаревший OpenGL для офисных программ? Ну-ну.

              Если бы не DXVK, то ещё долго мы бы не могли запускать игры не более чем десятилетней давности на Linux.
            0
            Господа, а можно драйвер от старой проприетарной железяки туда воткнуть от винды, или оно запускает только Ring3?
            +2

            А под новые макоси (каталина, бигсур) так и не работает?

              0
              Ну есть Crossover и бесплатный Wineskin Unofficial Update на его базе, но в привычном виде сборок Wine под них нет.
              +9
              Как там с апдейтом ReactOS?
                0

                Наступать на Wintel — так со всех сторон?

                0
                Что-то в их «фирменной» репе для Debian пакет wine-stable-i386 имеет максимальную версию 5.0.3 от 10.11.2020.
                  +3
                  В новости сказано что пакеты только билдятся и появятся в разделах позже. Исходный код уже доступен для скачивания
                    0
                    Уже появился. Жаль, Сталкер как не запускался раньше, так и не запускается на новой версии…
                      +1

                      В Steam запускается, там 5.13 последняя

                        0
                        Знать бы еще как именно он там работает. У меня сразу ошибку инициализации видеоадаптера выдает.
                        0
                        На известном сайте раздаются версии от GOG, работало года полтора назад нативно в wine, во все три играл на radeon. Кроме того — в разделе «Портированные игры для Linux» посмотрите, там уже wine бандл предсобранный для всех трех версий, не считая модов которые тоже там есть.
                    +2
                    Разработчики отказались от связывания модулей с ...

                    Несколько секунд доходило, что речь про банальную линковку с библиотекой.

                      0
                      Как у него дела с Windows Framework 3.51 — 4.5 и Microsoft Visual C++?
                      И что делать если приложение требует установку в системы некоего обновления винды?
                        0

                        Начиная с 5.18 .NET должен работать

                          0
                          Если вы про .NET Framework, то он и раньше работал: как через mono, так и через MS .NET Framework, если его поставить, правда, с Windows Forms бывают проблемы
                          +5

                          Этак следующая винда будет дистром Linux с Wine

                            0
                            После выхода 5.хх некоторый софт стал глючить и падать, хотя на 4.хх работал стабильно. Выходит 6.0 и начинается та же фигня. Приходится делать отдельный префикс и отдельные бинарники для проблемного софта. Более интересует как отлаживать падения приложений, которые стабильно работали в старой версии. Чтобы можно было осмысленные баг репорты писать с указанием проблемных мест и проблемного по.
                              0

                              git bisect, всё как обычно. Довольно быстро можно найти регрессию, если воспроизводить падения легко. Я так некогда в SDL2.dll нашёл регрессию, из-за которой в линуксе на протоне в одной игре сильно проседал FPS при любых движениях мышью. Вычислил в итоге коммит, откатил его, собрал через mingw эту библиотеку, заменил ту, что шла с игрой, и всё стало хорошо, играю дальше. Благо, SDL написан на C и зависимостей там минимум, так что можно и другим компилятором собрать без проблем. Разработчики игры были уведомлены и даже пропатчили свою версию SDL, но с недавним апдейтом проблема вернулась, так что снова живу на своей сборке.

                              0
                              ИНтересно как это все будет взаимодействовать с более «интересными» программными пакетами типа SCADA систем от сименса шнайдера и т.п. как лицензии заработают или лечить придется, как сетевые функции и взаимодействии между различными установками программных средств на узла сети в проектах…
                                0
                                )))) они в родной-то среде еле ворочаются
                                  0
                                  согласен, коллега, но ввиду особенности и использования в основе SCADA баз данных, при использовании SSD для установки среды и хранения проектов, а так же установкой по-больше оперативки (на «боевой ноут» впихнул максимум 16 Гиг) проекты стали компилироваться достаточно быстро (чашечку кофе не успеваю выпить).
                                0
                                Для более точного позиционирования в играх реализовано сохранение истории позиции мыши.
                                Интересно, где это применяется и зачем?

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое