Наиболее важные изменения:
- Повышена производительность OpenGL при использовании прослойки WoW64 (64-bit Windows-on-Windows), позволяющей выполнять 32-разрядные Windows-приложения в 64-разрядных Unix-системах (WoW64 обеспечивает запуск 32-разрядного кода внутри 64-разрядного процесса). Работа оптимизирована через реализацию маппинга буферов для WoW64 при помощи расширения MESA_map_buffer_client_pointer.
- Добавлена начальная версия DLL-библиотеки c реализацией API Voice Capture DSP для обработки данных с микрофона в режиме реального времени.
- Улучшена поддержка API для работы с учётными записями пользователей. Добавлена функция LogonUserW().
- Решены проблемы с обработкой комбинаций клавиш «Ctrl + Tab» и «Shift + Ctrl + Tab».
- Закрыты отчёты об ошибках, связанные с работой приложений: FL Studio 26.1.5, Cinebench 2026, .NET Framework 4.8.
- Закрыты отчёты об ошибках, связанные с работой игр: World of Tanks, Tron 2.0, I Love Science!, Skyrim, BioShock 2 Remastered, Zeus: Master of Olympus, Skyrim SE, No One Lives Forever 2.
Параллельно сформирован выпуск проекта Wine Staging 11.21, предоставляющего расширенные сборки Wine, включающие не полностью готовые или рискованные патчи, пока непригодные для принятия в основную ветку Wine. По сравнению с Wine в Wine Staging предоставляется 275 дополнительных патчей. В новом выпуске Wine Staging осуществлена синхронизация с кодовой базой Wine 11.21 и обновлён код vkd3d.
Дополнительно можно отметить выпуск проекта D7VK 2.4, развивающего реализацию графических API Direct3D 3, 5, 6 и 7, предложенных компанией Microsoft в 1996, 1997, 1998 и 1999 годах. D7VK работает через трансляцию вызовов в API Vulkan и позволяет при помощи Wine запускать в Linux ретро игры, завязанные на API Direct3D 3, 5, 6 и 7. Код проекта написан на языке C++ и распространяется под лицензией Zlib. В качестве основы при разработке использован код бэкенда d3d9 от проекта DXVK — D7VK преобразует API Direct3D 3, 5, 6 и 7 в вызовы Direct3D 9, которые затем транслируются в API Vulkan. Разработчик не намерен добиваться включения D7VK в состав DXVK, как это было с реализациями Direct3D 8 и Direct3D 9 поверх Vulkan.
В новой версии D7VK:
- Реализовано принудительное ограничение разрешения экрана значением 1080p для того чтобы соответствовать лимитам старых API, превышение которых приводило к аварийному завершению или откату на разрешение 640×480 в играх.
- Отключено по умолчанию масштабирование буфера отрисовки в зависимости от размера экрана, так как разница в размерах поверхностей приводила к сбоям в играх, копирующих данные между буферами DDraw и D7VK. Для возвращения масштабирование предусмотрена настройка «ddraw.backBufferResize = True», при выставлении которой теперь по умолчанию сохраняется исходное соотношение сторон (отключается через ddraw.preserveAspectRatio = False).
- Кодовая база синхронизирована с последней версией DXVK.
- Для совместимости с некоторыми старыми играми, такими как Earth 2150, добавлена опция для возвращения приложению только коэффициентов соотношения сторон 4:3 и 5:4.
- Для исключения проблем во время переключений между DDraw и Vulkan реализована опция для принудительной прокси-обработки цветности (gamma) через буферы отображения DDraw.
- Для снижения потребления памяти унифицированы все структуры описания поверхностей.
- Ускорены операции загрузки кубических текстур, создания объектов и инициализации через IClassFactory.
Отдельно в анонсе D7VK 2.4 представлен проект GXVK, развивающий реализацию графического API 3Dfx Glide, работающую поверх Vulkan и использующую DXVK в качестве бэкенда. Проект пока находится на стадии ранней альфа-версии, но уже позволяет запускать в Linux при использовании Wine некоторые старые 3D-игры и приложения, завязанные на API Glide. Развиваются транслирующие в Vulkan прослойки для трёх 32-разрядных вариантов API Glide 2.00-2.11 (glide.dll), Glide 2.30-2.60 (glide2x.dll) и Glide 3.00-3.10 (glide3x.dll), выпускавшихся компанией 3Dfx для Windows.
Источник: http://www.opennet.ru/opennews/art.shtml?num=66580
