Стабильный релиз Wine 4.0

23 января 2019 года

После года разработки и 28 экспериментальных версий представлен стабильный релиз открытой реализации Win32 API - Wine 4.0, который вобрал в себя более 6000 изменений. Из ключевых достижений новой версии отмечается поддержка графических API Direct3D 12 и Vulkan, включение по умолчанию обособленного потока обработки команд Direct3D, инфраструктура для настройки отображения элементов интерфейса с учётом DPI, поддержка игровых контроллеров, реализация корректной работы на экранах с высокой плотностью пикселей (High-DPI) для платформы Android, интерфейс Windows Media Player, поддержка запуска задач по расписанию, прекращение встроенной поддержки исполняемых файлов DOS.

В Wine подтверждена полноценная работа 4737 программ для Windows, еще 4045 программ прекрасно работают при дополнительных настройках и внешних DLL. У 3489 программ наблюдаются небольшие проблемы в работе, которые не мешают использованию основных функций приложений.

Ключевые новшества Wine 4.0:

  • Direct3D
  • Добавлена начальная поддержка Direct3D 12. Реализация основана на библиотеке vkd3d и требует для работы графической карты с поддержкой графического API Vulkan (Direct3D 12 работает через трансляцию вызовов в API Vulkan). Обеспечена поддержка большей части возможностей Direct3D 12, включая средства для графики и вычислений, очереди и списки команд, дескрипторы и дескрипторы кучи, корневые подписи, неупорядоченный доступ, Sampler-ы, сигнатуры команд, корневые константы, непрямая (indirect) отрисовка, методы Clear*() и Copy*();
  • Включено по умолчанию применение обособленного потока для обработки команд Direct3D, позволяющего выполнять отрисовку в асинхронном режиме с распараллеливанием на многоядерных системах;
  • В любых ситуациях, при доступности OpenGL, в Direct3D обеспечено применение по умолчанию базовых контекстов OpenGL. Ранее базовые контексты использовались только для обеспечения работы приложений Direct3D 10 и 11 на системах с графическими картами AMD и Intel. Теперь это ограничение снято и они применяются для любых видеокарт и всех версий Direct3D, за исключением Direct3D 12;
  • В реализации Direct3D 10 и 11 добавлена большая часть новых возможностей, включая поддержку мультисэмплинга текстур (Multisample texture), 1D-текстур, выборочной (per-sample) обработки фрагментов шейдерами, множественных областей ограничения 3D-сцены (viewport), новых форматов ресурсов, потокового вывод без геометрических шейдеров, управления отсечением глубины, механизмов для устранения артефактов при отрисовке теней и т.п.;
  • Некоторые интерфейсы Direct3D 11 обновлены до версии 11.2, а интерфейсы DXGI до версии 1.6;
  • Начался переход к применению в Direct3D гранулярных (fine-grained) блокировок, которые позволят повысить эффективность выполнения на CPU с большим числом процессорных ядер;
  • Для приложений DXGI и DirectDraw обеспечено использование корректного интервала замены буферов отрисовки (swap interval), синхронизированного с кадровым гасящим импульсом (v-blank);
  • Добавлена возможность настройки из приложений DXGI и Direct3D 9Ex величины задержки вывода кадров (frame latency);
  • Добавлена реализация механизма сжатия 3D-текстур S3TC (S3 Texture Compression), срок действия патентов на который истёк около года назад;
  • При поддержке драйвером OpenGL-расширения ARB_query_buffer_object обеспечено снижение задержек, благодаря обработке запросов в асинхронном режиме;
  • Расширена база данных графических карт, пригодных для использования Direct3D;
  • В реестр добавлены новые настройки "HKEY_CURRENT_USER\ Software\ Wine\ Direct3D": "MultisampleTextures" (включение мультисэмплинга текстур) и "Renderer" ("gl" для OpenGL и "gdi" для GDI). Объявлен устаревшим ключ "DirectDrawRenderer". Удалён ключ "StrictDrawOrdering";
  • Графическая подсистема
  • Реализован полноценный драйвер для графического API Vulkan, использующий штатные Vulkan-библиотеки на системах с X11 и API MoltenVK на платформе macOS;
  • Добавлена библиотека vulkan-1.dll c собственной реализацией загрузчика драйверов Vulkan для Windows, альтернативного загрузчику из Vulkan SDK;
  • Добавлена поддержка пиктограмм в формате PNG, в том числе пиктограмм 256x256 для экранов с большим разрешением;
  • В штатный набор пиктограмм добавлены варианты размером 256x256;
  • Многие интерфейсы Direct2D обновлены до версии спецификации 1.2. Для ограничения версии интерфейса Direct2D в секцию реестра "HKEY_CURRENT_USER\ Software\ Wine\ Direct2D" добавлен ключ "max_version_factory";
  • Для X11 добавлена поддержка визуализации в формате ARGB;
  • На базе движка DIB подготовлена реализация старого 16-разрядного драйвера DIB.DRV;
  • В движке DIB значительно ускорена отрисовка больших полигонов;
  • В код вывода на печать добавлена поддержка определения размера страниц A0, A1 и A2;
  • В GdiPlus добавлена поддержка рисования стрелок;
  • Ядро (интерфейсы ядра Windows)
  • Прекращена поддержка выполнения в wine исполняемых файлов DOS. При попытке запуска исполняемых файлов DOS теперь запускается отдельный экземпляр DOSBox. Изменение не касается выполнения исполняемых файлов

Win16, поддержка которые остаётся встроенной в Wine;

  • Для запускаемых в Wine драйверов на уровне ядра реализованы обработчики событий, семафоры, мьютексы и таймеры. Драйверам предоставлен доступ к управлению CPU и настройке отладочных регистров;
  • Добавлена поддержка примитивов синхронизации WaitOnAddress;
  • Для корректного определения использования технологии Hyper-threading, в выдаваемой информации о конфигурации CPU теперь разделяются логические и физические ядра процессора;
  • При запуске в окружениях Linux предоставлен доступ к детальной информации, выдаваемой BIOS;
  • Реализована подборка отладочных API для манипуляции 32-разрядными процессами в Wow64 из контекста 64-разрядных процессов;
  • Добавлено определение в manifest-файлах приложений настроек, уровней запуска и информации о совместимости;
  • Реализованы различные режимы определения завершения файлового ввода/вывода;
  • Для платформы NetBSD реализована поддержка отладочных регистров;
  • Интерфейс пользователя
  • Реализована инфраструктура для настройки отображения элементов интерфейса с учётом DPI и параметров масштабирования. Масштабирование содержимого окон пока отключено по умолчанию и доступно только на платформе Android. Для включения следует изменить параметр "DpiScalingVer" в секции реестра "HKEY_CURRENT_USER\ Control Panel\ Desktop"
  • Реализована возможность перенаправления класса Window, что позволило добавить поддержку элементов интерфейсов на базе библиотеки Common Controls 6;
  • В библиотеку ComCtl32 v6 (Common Control) добавлена поддержка стандартных пользовательских элементов интерфейса, в том числе классов для кнопок (Button), списков (ListBox), комбинированных блоков (ComboBox), статических блоков (Static) и форм редактирования (Edit). Реализована поддержка тем оформления;
  • Реализован штатный диалог управления задачами ( TaskDialog), включающий поддержку пиктограмм, гиперссылок, полос для индикации прогресса выполнения операций и различных элементов интерфейса;
  • В формах редактирования добавлена поддержка отображения подсказок непосредственно в полях ввода ( Cue banner);
  • Интеграция с рабочим столом
  • Добавлена возможность отключения экспорта списка ассоциаций для MIME-типов (вкладка Desktop Integration в winecfg или ключ реестра "HKEY_CURRENT_USER\ Software\ Wine\ FileOpenAssociations");
  • В реализацию диалога открытия и сохранения файлов добавлена возможность отображения свойств файла (размер, время и атрибуты). Опционально добавлена возможность отображения слева панели с часто используемыми файловыми путями (Places);
  • Для соответствия поведению новых версий Windows место AllUsersProfile в оболочке теперь используется каталог Public;
  • В файловом менеджере появилась поддержка горячих клавиш для переименования (F2) и удаления (Del) каталогов;
  • В библиотеку добавлены многие стандартные для Windows пиктограммы;
  • Добавлена поддержка автодополнения ввода в Shell;
  • В режиме рабочего стола панель задач теперь не показывается вверху полноэкранных окон;
  • В состав Shell32 включён большой набор новых пиктограмм;
  • Добавлена поддержка дополнительных имён штатных курсоров, что позволило улучшить совместимость с темами оформления курсоров в окружениях X11;
  • Устройства ввода
  • В API Raw Input и XInput добавлена поддержка игровых контроллеров с интерфейсом HID;
  • В HID-драйвере появилась поддержка геймпадов;
  • Реализован драйвер SDL, позволяющий взаимодействовать через интерфейс HID с поддерживаемыми в SDL игровыми контроллерами;
  • Сетевые возможности
  • В JScript добавлен режим совместимости с EcmaScript, позволяющий использовать некоторые возможности, отсутствующие в штатном режиме. Добавлена поддержка обращения к свойствам JavaScript;
  • Переписаны и теперь лучше соответствуют стандарту объекты для работы с таблицами стилей;
  • В MSHTML добавлена поддержка не-HTML элементов, в частности, добавлена ограниченная поддержка SVG;
  • Реализованы некоторые новые HTML API;
  • В апплет Internet Control Panel добавлена поддержка настройки прокси-сервера;
  • В API WebServices добавлена поддержка Stream I/O;
  • Реализован API Web Services on Devices (WSDAPI), в том числе обеспечена поддержка отправки и приёма различных типов сообщений;
  • Через API WBEM предоставлен доступ к дополнительной информации о системе, включая сведения о CPU, BIOS, видеокарте и сетевом адаптере;
  • WinHTTP переведён на использование Windows Sockets;
  • Криптография
  • Добавлена поддержка асимметричных криптографических ключей, а также возможность проверки цифровых подписей на базе алгоритмов RSA и ECDSA;
  • Добавлена возможность использования хэшей sha256/sha384 в цифровых подписях ECDSA;
  • Добавлена поддержка режимов аутентифицированного шифрования GCM и ECB;
  • Для RSA реализована поддержка оптимального асимметричного шифрования с дополнением ( OAEP(недоступная ссылка));
  • Добавлена поддержка аутентификации при помощи Kerberos;
  • Реализован диалог для работы с сертификатами на основе открытых ключей;
  • При работе в macOS при наличии теперь используются библиотеки GnuTLS, а при их отсутствии штатный фреймворк CommonCrypto;
  • Текст и шрифты
  • В DirectWrite добавлена поддержка хранения ресурсов шрифтов в памяти;
  • Таблицы символов обновлены до спецификации Unicode 11;
  • Добавлена поддержка субпиксельного рендеринга шрифтов (требуется наличие FreeType 2.8.1 или более новой версии);
  • В эмуляторе консоли обеспечено корректное масштабирование шрифтов в соответствии с настройками DPI.
  • Расширено число глифов в шрифте Wingdings, в том числе добавлены глифы с разными изображениями часов;
  • Звук
  • Реализован интерфейс Windows Media Player для воспроизведения мультимедийного контента;
  • Добавлен декодировщик MP3, доступный через DirectX Media Object;
  • Поддержка платформы Android
  • Добавлена возможность установки курсора мыши, используя API

Android 7+;

  • Добавлена поддержка нового механизма распределения памяти gralloc, который позволил решить проблемы с выводом графики в Android 8+;
  • Добавлена поддержка платформ Android x86-64, в том числе в 64-разрядном режиме (режим WoW64 пока не поддерживается в пакетах WineHQ);
  • Встроенные приложения
  • Добавлена программа Ping, показываются время сетевого отклика, вычисляемого при помощи вызова функции IcmpSendEcho;
  • Добавлен интерфейс SchTasks для добавления и удаления команд для запуска задач по расписанию;
  • В RegEdit добавлен режим шестнадцатеричного просмотра бинарных значений;
  • В командном интерпретаторе добавлена корректная реализация циклов "FOR";
  • В программу XCopy добавлена опция "/k", обеспечивающая сохранение атрибутов;
  • Инструменты для разработки
  • В winedbg добавлена поддержка отладки процессов WoW64;
  • В winegcc добавлена поддержка сборки библиотек штатных подсистем и улучшен поиск подходящих библиотек для кросс-компиляции;
  • В winebuild добавлена опция "-mfpu" для выбора архитектуры FPU для платформ ARM;
  • В winedump добавлена поддержка дампов typelib в формате SLTG;
  • В компилятор IDL добавлена поддержка ACF (Application Configuration Files), асинхронных интерфейсов, cериализации атрибутов,

типа __int32 и генерации нескольких typelib в одном файле с ресурсами;

  • Движок Mono, используемый для запуска файлов .NET, обновлён до выпуска 4.7.5. В 64-разрядных окружениях добавлена возможность запуска в режиме CLI 32-разрядных исполняемых файлов .NET;
  • Система маршалинга в Typelib переписана с использованием функций NDR;
  • В фреймворке для проведения тестирования качества кода добавлена поддержка тестирования драйверов ядра Windows и библиотек, загружающих внешние dll;
  • Добавлена возможность сборки WoW64 (эмулятор для запуска 32-разрядных приложений Windows в 64-разрядных редакциях Windows) из штатного дерева исходных кодов Wine;
  • Разное
  • Реализован сервис Task Scheduler для запуска задач по расписанию;
  • Реализован сервис WMI (Windows Management Instrumentation) для централизованного управления системами на базе Windows;
  • Реализована библиотека для сервисов OPC (Open Packaging Convention), используемых в XML-файлах Microsoft Office;
  • Расширена поддержка платформ ARM и ARM64. Для кросс-компиляции для

ARM64 реализована возможность использования инструментария MinGW;

  • Добавлена поддержка отложенной установки пакетов MSI. Обеспечено выполнение пользовательских обработчиков в MSI в отдельном процессе, что позволяет создавать комбинированные установщики для 32- и 64-разрядных систем. Добавлена поддержка преобразований субхранилищ в MSI;
  • Новые внешние зависимости: библиотеки Vulkan для работы драйвера Vulkan, Vkd3d для Direct3D 12, SDL для поддержки игровых контроллеров, GSSAPI для Kerberos.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Стабильный релиз Wine 4.0», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.