Стабильный релиз Wine 3.0
После года разработки и 23 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API — Wine 3.0, который вобрал в себя более 6000 изменений. Из ключевых достижений новой версии отмечается поддержка Direct3D 10 и 11, реализация обособленного потока обработки команд Direct3D, графический драйвер для платформы Android, улучшенная поддержка DirectWrite и Direct2D. Из возможностей которые отложены до следующей значительной ветки упоминаются поддержка Direct3D 12, Vulkan и реализация Direct3D через OpenGL ES на платформе Android.
В Wine подтверждена полноценная работа 4580 программ для Windows, еще 3907 программ прекрасно работают при дополнительных настройках и внешних DLL. У 3301 программ наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений.
Ключевые новшества Wine 3.0:
- Direct3D
- Реализована значительная часть возможностей Direct3D 10 и 11, в том числе вычислительные и тесселяционные шейдеры, потоковый вывод, инструкции и модификаторы интерполяции для моделей шейдеров 4 и 5, непрямой (indirect) рендеринг, структурированные и побайтово адресуемые буферы, многослойная отрисовка на трёхмерных текстурах и массивах текстур, создание уровней mip-map и т.д.
- Реализация обособленного потока обработки команд Direct3D, позволяющего выполнять отрисовку в асинхронном режиме с распараллеливанием на многоядерных системах. В настоящее время работа сосредоточена на обеспечении корректной отрисовки в многопоточном режиме, но в будущем ожидается проведение работы по увеличению производительности. В секцию реестра «HKCU\Software\Wine\Direct3D» добавлен новый ключ «csmt» (REG_DWORD), через который можно включить (0×1) или выключить (0×0, по умолчанию) поддержку многопоточной обработки команд Direct3D;
- Улучшена поддержка применения базовых контекстов OpenGL в Direct3D, которые уже используются по умолчанию для обеспечения работы приложений Direct3D 10 и 11 на системах с графическими картами AMD и Intel, что позволяет при наличии OpenGL-драйверов Mesa обойтись без установки в реестре параметра«MaxVersionGL» для включения Direct3D 10 и 11;
- Увеличено число графических карт, распознаваемых для WineD3D;
- Графическая подсистема
- В Direct2D реализована поддержка контуров геометрических объектов, кистей с линейными и радиальными градиентами, вычисления границ геометрических объектов, упрощения геометрических объектов;
- Обеспечена совместимость Direct2D с GDI;
- Список поддерживаемых расширений OpenGL обновлён до OpenGL 4.6;
- Частично реализована библиотека GLU (OpenGL Utility Library). Системная библиотека GLU необходима только при использовании системы рендеринга Nurbs, во всех остальных случаях функции GLU теперь встроены в Wine;
- В GdiPlus обеспечена обработка графических операций, включающих трансформации;
- В GdiPlus добавлена поддержка воспроизведения большинства специфичных для GdiPlus типов записей metafile, помимо стандартных записей metafile;
- В WindowsCodecs добавлена поддержка кодирования форматов изображений, включающих палитру;
- Обеспечение работы Wine в окружении платформы Android
- Появилась возможность сборки Wine в виде пакета в формате APK и установки как обычного приложения для Android;
- Подготовлен полноценный графический драйвер (GDI) для Android. Из-за ограничений API Android возможна работа только в полноэкранном режиме;
- Реализован полноценный звуковой драйвер для Android;
- Обеспечена поддержка OpenGL, ограничивающаяся возможностями API OpenGL ES. Direct3D в окружении Android пока не поддерживается, так как не может быть полноценно реализован поверх OpenGL ES;
- Ядро
- Заявленная по умолчанию версия Windows поднята до Windows 7;
- Реализована полная семантика именованных каналов, включая режим обмена сообщениями для именованных каналов. Обработка именованных каналов теперь целиком производится на стороне сервера Wine;
- Поддержка исполняемых файлов в формате POE (Position Independent Executables), как для исполняемого файла Wine, так как для запуска внешних исполняемых файлов;
- Включено автоматическое создание устройств для параллельных и последовательных портов (могут быть переопределены через ключ HKLM\Software\Wine\Ports);
- Реализован и включен по умолчанию безопасный режим поиска DLL (для отключения следует в разделе реестра HKLM\System\CurrentControlSet\Control\Session Manager установить переменную «SafeDllSearchMode» в 0);
- Реализован безопасный режим поиска процессов, который отключен по умолчанию (включается через установку переменной HKLM\System\CurrentControlSet\Control\Session Manager\SafeProcessSearchMode в 1);
- Увеличена производительность асинхронного ввода/вывода, благодаря сокращению числа обращений к серверу;
- На 64-разрядных платформах обеспечена возможность выделения областей виртуальной памяти произвольного размера;
- Интерфейс пользователя
- Выполнен редизайн курсоров мыши, которые также предложены в более высоком разрешении для экранов с высокой плотностью пикселей (high DPI);
- Для экранов с высокой плотностью пикселей адаптированы Shell Explorer, RichEdit и все основные диалоги;
- Для переопределения DPI экрана предложена настройка «LogPixels», доступная в секции реестра «HKEY_CURRENT_USER\Control Panel\Desktop»;
- В режиме рабочего стола добавлена поддержка более высоких разрешений с различным коэффициентом соотношения сторон;
- Реализована панель задач (Task Dialog);
- В MSI добавлена поддержка внутреннего интерфейса (IUI, Internal User Interface);
- Добавлен режим отрисовки тем оформления с применением двойной буферизации;
- В библиотеку TWAIN добавлена поддержка диалога для выбора доступного сканера;
- Добавлена возможность сохранения в OLE Data Cache платформонезависимых битовых карт и metafile;
- Интеграция с рабочим столом
- В desktop-файлах добавлена возможность определения поля StartupWMClass для обеспечения привязки к исполняемому файлу Windows;
- Для определения изменений в буфере обмена X11-приложений задействована библиотека Xfixes, вместо периодической проверки буфера;
- В компонент RichEdit добавлена поддержка вставки в форме metafile;
- Добавлена поддержка Progman DDE (компонент с DDE-сервером для Program Manager);
- Активирован по умолчанию HID-сервис для определения устройств с поддержкой PNP;
- Для macOS обеспечена поддержка четвёртой версии протокола вывода уведомлений;
- Текст и шрифты
- В API Uniscribe добавлена поддержка контекстной замены глифов;
- Таблицы символов переведены на использование стандарта Unicode 10;
- Обеспечена совместимость со шрифтовым движком FreeType 2.8.1;
- DirectWrite
- Обеспечена симуляция наклонных и жирных начертаний символов;
- Улучшена обработка разрывов строк;
- Улучшена отрисовка подчёркиваний;
- Улучшена поддержка режима работы в оттенках серого;
- Улучшена поддержка сглаживания и преобразования шрифтов;
- Реализованы методы применения равномерного и пропорционального межстрочного интервала;
- Кэш адаптирован для использования в многопоточных приложениях;
- Реализована поддержка загрузки файлов шрифтов в оперативную память;
- D3DX
- Улучшена поддержка прешейдеров (preshader);
- Добавлена возможность определения движков применения эффектов (ID3DXEffectStateManager) в приложениях D3DX 9;
- Реализован пул эффектов для совместного использования параметров между разными эффектами D3DX 9;
- Сетевые возможности
- В WebServices добавлена поддержка приёма TCP- и UDP-соединений;
- В Web Services добавлена поддержка протокола .NET Message Framing Protocol и формата .NET Binary Format, включая расширение для таблиц символов;
- В Web Services включена поддержка приёма сообщений в асинхронном режиме;
- Переработан код обработчика событий HTML для соответствия стандарту;
- Добавлена поддержка нескольких стандартных HTML API;
- В компонент WebBrowser добавлена поддержка файлов MHTML;
- Улучшена поддержка встраивания HTML-документов в приложения .NET;
- В WinHTTP налажен корректный разбор атрибутов Cookie;
- Криптография
- Добавлена встроенная реализация криптографических хэшей (вместо использования внешней библиотеки GnuTLS);
- Добавлена поддержка симметричного алгоритма блочного шифрования AES;
- В список известных сертификатов добавлен корневой сертификат Microsoft от 2011 года;
- Дополнительные пакеты с Mono и Gecko теперь проверяются при помощи контрольных сумм SHA256;
- Платформа ARM
- На системах ARM по умолчанию выставлен ABI 'softfp' для совместимости с исполняемыми файлами Windows;
- Добавлена поддержка предварительной загрузки (Preloader) на платформе ARM64;
- Добавлена возможность использования режима отладки relay на системах ARM64;
- Встроенные приложения
- В RegEdit для улучшения совместимости с Windows переработаны функции импорта и экспорта реестра. По умолчанию экспорт осуществляется в формате Unicode. 64-разряные представления в реестре теперь всегда снабжаются 64-разрядными префиксами;
- В утилиту Reg.exe добавлены операции импорта и экспорта файлов с реестром;
- В командном интерпретаторе добавлена команда MKLINK и обеспечена поддержка экранирования символов в командной строке;
- В игре WineMine добавлен вывод диалога подтверждения операции перед сбросом лучших результатов;
- Инструменты
- В widl (компилятор IDL) обеспечена обработка возвратов из функций C++ в виде, совместимом с MSVC;
- В компилятор ресурсов (wrc) добавлена возможность преобразования версий ресурсов через po-файлы;
- В отладчик (winedbg) добавлена поддержка вывода состояния регистров для SSE и вычислений с плавающей запятой;
- Все Perl-скрипты, разбирающие XML, переведены на использование модуля XML: LibXML;
- Удалена устаревшая утилита wineinstall;
- Разное
- В XAudio реализована поддержка звуковых форматов с плавающей запятой с числом каналов более двух;
- В C++ runtime добавлена поддержка Scheduler и аналогичных классов;
- В ODBC добавлена поддержка установки драйвера SQL;
- Добавлена поддержка каталога ProgramData;
- В движок Mono перенесены исправления из основного проекта и добавлена поддержка второй версии API профилирования;
- В отладочных трассировках обеспечено отображение идентификатора потока;
- Новые зависимости
- В число зависимостей включена библиотека krb5, используемая в Kerberos Authentication Package;
- Для получения уведомления об изменении содержимого буфера обмена задействована библиотека XFixes.
© OpenNet