Byla vydána experimentální verze otevřené implementace Win32 API — Wine 11.17. Od vydání verze 11.16 bylo uzavřeno 44 chybových hlášení a provedeno 387 změn.
Nejdůležitější změny:
- Byla přidána základní podpora emulace režimů zobrazení, která umožňuje spouštění aplikací a her na celé obrazovce s vlastním virtuálním rozlišením, které je při skutečném vykreslování škálováno podle DPI existujícího monitoru. Například stará hra může využívat rozlišení 640×480, ale na obrazovce s vyšším rozlišením se zobrazuje při zachování proporcí.
- Byla přidána podpora funkcí RtlGetSystemPreferredUILanguages a RtlGetUserPreferredUILanguages pro získání seznamu preferovaných jazyků v uživatelském rozhraní zapsaném v registrech pro celý systém a jednotlivé uživatele, který je výchozí nastaven podle parametrů lokalizace. Dále byly přidány funkce RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages a SetThreadPreferredUILanguages pro určování a nastavení seznamu preferovaných jazyků na úrovni procesů a vláken.
- Integrovaný balíček Vkd3d s implementací Direct3D 12 byl aktualizován na verzi 2.1.
- Byly uzavřeny chybové hlášení související s fungováním aplikací: 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.
- Byly uzavřeny chybové hlášení související s fungováním her: 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.
Dále lze zmínit nové vydání projektů souvisejících s Wine:
- Bylo vytvořeno vydání projektu Wine Staging 11.17, které poskytuje rozšířené sestavení Wine, zahrnující nedokončené nebo rizikové záplaty, které zatím nejsou vhodné k přijetí do hlavní větve Wine. Ve srovnání s Wine obsahuje Wine Staging 279 dalších záplat. V novém vydání Wine Staging došlo k synchronizaci s kódovou základnou Wine 11.17 a byl aktualizován kód vkd3d. Do hlavního jádra Wine byla přenesena záplata, která implementuje v knihovně kernel32.dll funkci SetThreadpoolTimerEx.
- Byl zveřejněn balíček vkd3d 2.1 s implementací Direct3D 12, fungující přes překlad volání do grafického API Vulkan. Balíček zahrnuje knihovny libvkd3d s implementací Direct3D 12, libvkd3d-shader s překladačem modelů shaderů a libvkd3d-utils se funkcemi pro usnadnění portování aplikací Direct3D 12, spolu s řadou demonstračních příkladů, včetně portu glxgears na Direct3D 12. Knihovna libvkd3d podporuje většinu funkcí Direct3D 12, včetně prostředků pro grafiku a výpočty, front, a seznamů příkazů, popisovačů a hromadných popisovačů, kořenových podpisů, nepořádkového přístupu, vzorkovačů, podpisů příkazů, kořenových konstant, nepřímého vykreslování, metod Clear*() a Copy*(). V libvkd3d-shader byla implementována translace bytecode modelů shaderů do mezipředstavy SPIR-V.
V nové verzi vkd3d:
- Byla přidána podpora aritmetických operací s typem „half“ při použití modelů shaderů 4 a 5 do implementace jazyka shaderů HLSL.
- V překladači shaderů HLSL byly posíleny kontroly vstupních a výstupních dat, byl implementován průchod pro odstranění nepoužívaných globálních proměnných (uniform) v modelech shaderů 1-3.
- V backendu pro jazyk shaderů GLSL (OpenGL Shading Language) byla implementována podpora nepřímé adresace vstupních registrů, atomických operací porovnávání a celočíselného sčítání, bitových operací a bariér, operací načítání/ukládání pro UAV (Unordered Access View) a sdílenou paměť skupiny vláken.
- Byla zlepšena podpora starého binárního formátu shaderů Direct3D. Byly implementovány instrukce „sub“ a „break_cmp“, modifikátory instrukcí „_x2“, „_x4“, „_x8“, „_d2“, „_d4“ a „_d8“, jakož i modifikátory operandů „_bias“, „_x2“ a „_bx2“.
- Při převodu shaderů do mezipředstavy SPIR-V byla přidána podpora operací konverze čísel s plovoucí desetinnou čárkou na 64bitová celá čísla.
- V libvkd3d-utils byla rozšířena podpora API reflexe shaderů. Byly implementovány rozhraní ID3D10ShaderReflection, ID3D10ShaderReflection1 a ID3D11ShaderReflection, jakož i většina metod rozhraní ID3D12ShaderReflection a ID3D12ShaderReflectionType.
- V vkd3d-compiler byla přidána možnost „—allow-half-globals“, a v libvkd3d-shader příznak VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS pro kompilaci globálních proměnných typu „half“ do představy typu „float“.
- Byla vydána verze DXVK 3.1, která poskytuje implementaci DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 a 11, fungující prostřednictvím translace volání do API Vulkan. Pro použití DXVK jsou vyžadovány ovladače podporující API Vulkan 1.4, jako například NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 a Intel ANV 25.1. DXVK může být použito k spouštění 3D aplikací a her v Linuxu pomocí Wine, poskytující výkonnější alternativu k implementacím Direct3D integrovaným do Wine, které fungují nad OpenGL.
V nové verzi:
- Byla přidána podpora inkrementálního vykreslování v DXGI, realizovaná pomocí Vulkan rozšíření VK_KHR_incremental_present, které umožňuje aktualizovat na obrazovce pouze změněné oblasti. Nová funkce vyřešila problémy s vykreslováním ve VirtualDJ a různých herních spouštěčích, jako je Ubisoft Connect.
- Byla přidána podpora pro vytváření zobrazení objekty vykreslování (render target view) přímo v bufferech, což vyřešilo problémy s artefakty při vykreslování mraků v některých hrách na enginu Frostbite, jako je Battlefield 3.
- Bylo implementováno načítání knihoven pro podporu specifických rozšíření GPU Intel (vendor extensions).
- Byly vyřešeny problémy v hrách Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge, RaceRoom Racing Experience.
- Byla vydána verze projektu D7VK 2.2, která rozvíjí implementaci grafických API Direct3D 3, 5, 6 a 7, které byly navrženy společností Microsoft v letech 1996, 1997, 1998 a 1999. D7VK funguje prostřednictvím translace volání do API Vulkan a umožňuje spouštět retro hry v Linuxu prostřednictvím Wine, které se spoléhají na API Direct3D 3, 5, 6 a 7. Kód projektu je napsán v C++ a je distribuován pod licencí Zlib. Jako základ pro vývoj byl použit kód backendu d3d9 z projektu DXVK — D7VK převádí API Direct3D 3, 5, 6 a 7 na volání Direct3D 9, která jsou následně translována do API Vulkan. Vývojář nemá v úmyslu zahrnout D7VK do DXVK, jako tomu bylo s implementacemi Direct3D 8 a Direct3D 9 nad Vulkan.
V nové verzi došlo k přechodu na práci nad verzí DXVK 3.1, byla přepracována kontrola spustitelných bufferů D3D3 a počítání referencí (refcounting) pro zařízení D3D3, byla zlepšena manipulace s texturami pro D3D5/3. Byly provedeny opravy, které zlepšují podporu her: Palantírs in The Lord of the Rings, Resident Evil 2 a Frogger.
Zdroj: opennet.ru
