Главная » Новости и полезные материалы по OpenSource » Представлен стабильный релиз Wine 4.0

📑 Представлен стабильный релиз Wine 4.0

wine 4.0 releasedПосле года разработки и 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, в том числе пиктограмм 256×256 для экранов с большим разрешением;
    • В штатный набор пиктограмм добавлены варианты размером 256×256;
    • Многие интерфейсы Direct2D обновлены до версии спецификации 1.2. Для ограничения версии интерфейса в секцию реестра «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;
  • Обеспечение работы Wine в окружении платформы 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.

Источник

📑 Похожие статьи на сайте
При перепечатке просьба вставлять активные ссылки на oslogic.ru
Copyright oslogic.ru © 2024 . All Rights Reserved.