|
Опубликован экспериментальный выпуск открытой реализации Win32 API - Wine 10.20. С момента выпуска 10.19 было закрыт 31 отчёт об ошибках и внесено 337 изменений.
Наиболее важные изменения:
- Встроенный пакет Vkd3d с реализацией Direct3D 12 обновлён до версии 1.18.
- Добавлено диалоговое окно для отображения прогресса сканирования документов.
- Продолжена реализация механизма Reparse Point, при помощи которого можно прикреплять к файлам и каталогам дополнительные данные, идентифицируемые через теги. Обеспечена поддержка Reparse Point в функциях CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress()
- Продолжен рефакторинг реализации Common Control после разделения библиотеки COMCTL32 на отдельные модули для версий 5 и 6.
- Решена проблема с аварийным завершением многих игр (например, Syberia 2) при использовании режима WoW64 на системах с GPU NVIDIA.
- Решена проблема с подвисанием реакции при нажатии клавиш управления курсором в некоторых играх, таких как Might and Magic VI.
- Решена проблема с зависанием или невозможностью запуска некоторых windows-сборок приложений, использующих библиотеку GTK, например, Meld и Geany.
- Закрыты отчёты об ошибках, связанные с работой приложений: SQL Server 2012/2014, MS Office 365 installer, QuarkXPress 2024, TomTom MyDrive Connect 4.x, Spine, GenLauncher, grepwinNP3, PlayOnline Viewer, tlReader 10.1.0.2004, cmd.exe, CLM Explorer, HiveMQ CE 2025.5.
- Закрыты отчёты об ошибках, связанные с работой игр: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 - Mutagen.
Проект Wine также опубликовал выпуск пакета vkd3d 1.18 с реализацией Direct3D 12, работающей через трансляцию вызовов в графический API Vulkan. В состав пакета входят библиотеки libvkd3d с реализаций Direct3D 12, libvkd3d-shader c транслятором 4 и 5 модели шейдеров и libvkd3d-utils с функциями для упрощения портирования приложений Direct3D 12, а также набор демонстрационных примеров, включая порт glxgears на Direct3D 12. Код проекта распространяется под лицензией LGPLv2.1.
Библиотека libvkd3d поддерживает большую часть возможностей Direct3D 12, включая средства для графики и вычислений, очереди и списки команд, дескрипторы и дескрипторы кучи, корневые сигнатуры, неупорядоченный доступ, Sampler-ы, сигнатуры команд, корневые константы, непрямую (indirect) отрисовку, методы Clear*() и Copy*(). В libvkd3d-shader реализована трансляция байт-кода моделей шейдеров в промежуточное представление SPIR-V. Поддерживаются вершинные, пиксельные, тесселяционные, вычислительные и простые геометрические шейдеры, сериализация и десериализация корневой сигнатуры. Из шейдерных инструкций реализованы арифметические, атомарные и битовые операции, операторы сравнения и управления потоком передачи данных, инструкции sample, gather и load, операции неупорядоченного доступа (UAV, Unordered Access View).
В новой версии vkd3d:
- В реализацию языка шейдеров HLSL добавлены встроенные функции
countbits(),
firstbithigh(),
firstbitlow(),
frexp() и
texCUBEbias(). Для профилей Shader Model 1-3 реализована поддержка условных выражений с целочисленными типами.
- В компиляторе шейдеров HLSL оптимизирована компиляция кода с условными операторами if/else. Расширено вычисление констант на этапе компиляции (constant folding). Подобная оптимизация теперь может применяться для выражений типа "true ? x : y" и функций asfloat(), asint(), asuint(), cos(), mad(), round() и sin().
- В библиотеке libvkd3d в реализацию программного интерфейса ID3D12Device4 добавлен метод CreateCommandList1().
- Добавлены инструкции байткода Direct3D:
bem,
tex,
texbem,
texbeml и
texcoord.
- Продолжено развитие реализации языка шейдеров MSL (Metal Shading Language), применяемого компанией Apple в графическом API Metal. Добавлена поддержка вычислительных шейдеров, мгновенно инициализируемых буферов констант, тригонометрических функций, операций получения остатка и побитового перебора.
- В реализацию языка шейдеров GLSL (OpenGL Shading Language) добавлены беззнаковые целочисленные операции деления и получения остатка, функции sin() и cos(), возможность смещения текселей при загрузке текстур.
Кроме того, компания Valve опубликовала выпуск VKD3D-Proton 3.0, ответвления от кодовой базы vkd3d, созданного для улучшения поддержки Direct3D 12 в пакете для запуска игр Proton. В VKD3D-Proton поддерживаются специфичные для Proton изменения, оптимизации и улучшения для более качественной работы Windows-игр на базе Direct3D 12, которые пока не приняты в основной состав vkd3d. Из отличий также отмечается ориентация на использование современных расширений Vulkan и возможностей свежих выпусков графических драйверов для достижения полной совместимости с Direct3D 12.
Среди изменений в новой версии vkd3d-proton:
- Переписан бэкенд шейдеров DXBC (DirectX ByteCode), который заменил собой бэкенд vkd3d-shader. Новый бэкенд решил проблемы во многих играх, ранее возникавшие из-за отсутствия в vkd3d-shader нужной функциональности, например, налажена работа игры Red Dead Redemption 2 в режиме D3D12.
- Добавлена поддержка технологии суперсэмплинга FSR4 (AMD FidelityFX Super Resolution).
- Добавлена экспериментальная поддержка графов рабочих задач D3D12 (Work Graphs).
- Добавлена экспериментальная поддержка микрокарт прозрачности (OMM - Opacity MicroMaps).
- Решены проблемы в играх Star Citizen, Ninja Gaiden 4, Monster Hunter Wilds, Wreckfest 2, Satisfactory, Street Fighter 6, Death Stranding, Wuthering Waves, Dune, Spider-Man Remastered, Gray Zone Warfare, Rise of the Tomb Raider, Port Royal, Mafia: Definitive Edition, Final Fantasy Tactics.
|