Стабильный релиз Wine 3.0
18 января 2018 года
После года разработки и 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), через который можно включить (0x1) или выключить (0x0, по умолчанию) поддержку многопоточной обработки команд 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;
- Поддержка исполняемых файлов в формате PIE (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-разрядных платформах обеспечена возможность выделения областей виртуальной памяти произвольного размера;
- Интерфейс пользователя
- Выполнен редизайн курсоров мыши, которые также предложены в более высоком разрешении для экранов с высокой плотностью пикселей (HiDPI);
- Для экранов с высокой плотностью пикселей адаптированы 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.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.