Публикувана експериментална версия на отворената реализация на Win32 API — Wine 11.17. След издаването на 11.16, 44 отчета за грешки са затворени и са направени 387 промени.
Най-важните промени:
- Добавена е начална поддръжка за емулация на екранни режими, което позволява стартирането на приложения и игри на цял екран с виртуално разрешение, което при реална визуализация се мащабира в зависимост от DPI на наличния монитор. Например, стара игра може да използва разрешение 640×480, но да се показва на екран с по-високо разрешение, запазвайки пропорциите.
- Добавена е поддръжка за функциите RtlGetSystemPreferredUILanguages и RtlGetUserPreferredUILanguages за получаване на списък с предпочитани езици в интерфейса, зададени в регистъра за цялата система и отделни потребители, и по подразбиране генерирани на базата на локализация. Също така са добавени функции RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages, SetThreadPreferredUILanguages за определяне и задаване на списък с предпочитани езици на ниво процеси и нишки.
- Вграденото Vkd3d с реализация на Direct3D 12 е обновено до версия 2.1.
- Затворени са отчети за грешки, свързани с приложенията: certmgr.exe, Signtools, Advanced SystemCare 6.4, Autodesk 3ds Max 9, SketchUp 2021, Nokia S60 5th Edition SDK 1.0, PDFCreator, SafeDisc v2.05.030, Bigrats, PTC Pro Engineer Wildfire V5, VisualSubSync 1.0.2.1, PS4 Remote Play 2.x, MigrosBank EBanking 8.2.x, Sparda Bank SecureApp 1.x, MSXML 6.0, Sennheiser Wireless Systems Manager 4.4, Netscape Navigator 3.04, xEdit.
- Затворени са отчети за грешки, свързани с игрите: GTA: Vice City, GTA: San Andreas, Tetris JR, Worms Blast, Horizon Chase Turbo, Star Wars: Knights of the Old Republic I/II, GunBound, Marathon, Ground Control, Ankh — Anniversary Edition, Clive Barker’s Jericho.
Допълнително могат да се отбележат нови версии, свързани с Wine проекти:
- Създадена е версия на проекта Wine Staging 11.17, предоставяща разширени сборки на Wine, включващи не напълно готови или рискови пачове, които в момента не са подходящи за приемане в основната версия на Wine. В сравнение с Wine, в Wine Staging са предоставени 279 допълнителни пача. В новата версия на Wine Staging е осъществена синхронизация с кодовата база на Wine 11.17 и е обновен кодът на vkd3d. В основния състав на Wine е пренесен пач, реализиращ в библиотеката kernel32.dll функцията SetThreadpoolTimerEx.
- Публикуван е пакет vkd3d 2.1 с реализация на Direct3D 12, работеща чрез транслация на извиквания в графичния API Vulkan. В пакета влизат библиотеки libvkd3d с реализация на Direct3D 12, libvkd3d-shader с транслатор за моделите на шейдерите и libvkd3d-utils с функции за улесняване на портироването на приложения Direct3D 12, както и набор от демонстрационни примери, включително порт glxgears на Direct3D 12. Библиотеката libvkd3d поддържа повечето функции на Direct3D 12, включително средства за графика и изчисления, опашки и списъци с команди, дескриптори и купчини с дескриптори, коренови сигнатури, неуправляем достъп, Sampler-и, сигнатури на команди, коренови константи, индиректно рисуване, методи Clear*() и Copy*(). В libvkd3d-shader е реализирана транслация на байт-код на моделите на шейдерите в междинно представяне SPIR-V.
В новата версия vkd3d:
- В реализацията на езика шейдери HLSL е добавена поддръжка на аритметични операции с тип «half» при използване на 4 и 5 модели на шейдери.
- В компилатора на шейдери HLSL са подсилени проверките на входни и изходни данни, реализиран е проход за премахване на неупотребявани глобални променливи (uniform) в 1-3 модели на шейдери.
- В бекенда за езика шейдери GLSL (OpenGL Shading Language) е реализирана поддръжка на косвена адресация на входни регистри, атомарни операции за сравнение и целочислено събиране, битови операции и бариери, операции за зареждане/запазване за UAV (Unordered Access View) и обща памет на група потоци.
- Поддръжката на стария бинарен формат на шейдери Direct3D е подобрена. Реализирани са инструкции «sub» и «break_cmp», модификатори на инструкции «_x2», «_x4», «_x8», «_d2», «_d4» и «_d8», както и модификатори на операндите «_bias», «_x2» и «_bx2».
- При преобразуването в междинно представяне шейдери SPIR-V, се появи поддръжка на операции за конвертиране на числа с плаваща запетая в 64-разредни цели числа.
- В libvkd3d-utils е разширена поддръжката на API за рефлексия на шейдери. Реализирани са интерфейсите ID3D10ShaderReflection, ID3D10ShaderReflection1 и ID3D11ShaderReflection, както и повечето методи на интерфейсите ID3D12ShaderReflection и ID3D12ShaderReflectionType.
- В vkd3d-compiler е добавена опция «—allow-half-globals», а в libvkd3d-shader флагът VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS за компилиране на глобални променливи с тип «half» в представяне с тип «float».
- Формировна версия слой DXVK 3.1, предоставяща реализация на DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 и 11, работеща чрез транслация на повиквания в API Vulkan. За да се използва DXVK е необходимо наличие на драйвери, поддържащи API Vulkan 1.4, като NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 и Intel ANV 25.1. DXVK може да се използва за стартиране на 3D приложения и игри в Linux чрез Wine, послужвайки като по-високопроизводителна алтернатива на вградените в Wine реализации на Direct3D, работещи върху OpenGL.
В новата версия:
- Добавена е поддръжка за инкрементално рисуване в DXGI, реализирана с помощта на Vulkan разширението VK_KHR_incremental_present, което позволява обновяване на екрана само на променените области. Новата функция разреши проблеми с рисуването в VirtualDJ и различни игрови стартери, като Ubisoft Connect.
- Добавена е поддръжка за създаване на представления на обекти за рисуване (render target view) директно в буферите, което разреши проблеми с появата на артефакти при рисуването на облаци в някои игри на движка Frostbite, като Battlefield 3.
- Реализирано е зареждане на библиотеки за поддръжка на специфични за GPU Intel разширения (vendor extensions).
- Разрешени са проблеми в игрите Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge, RaceRoom Racing Experience.
- Публикувана е версия на проекта D7VK 2.2, развиваща реализацията на графичните 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.
В новата версия е осъществен преход на работа върху версия DXVK 3.1, преработена е проверката на изпълними буфери D3D3 и преброяването на референции (refcounting) за устройства D3D3, подобрена е обработката на текстури за D3D5/3. Внесени са корекции, подобряващи поддръжката на игрите: Palantírs in The Lord of the Rings, Resident Evil 2 и Frogger.
Източник: opennet.ru
