Byla zveřejněna experimentální verze otevřené implementace Win32 API — Wine 10.20. Od vydání 10.19 bylo uzavřeno 31 chybových hlášení a provedeno 337 změn.
Nejdůležitější změny:
- Integrovaný balíček Vkd3d s implementací Direct3D 12 byl aktualizován na verzi 1.18.
- Bylo přidáno dialogové okno pro zobrazování pokroku skenování dokumentů.
- Pokračuje implementace mechanismu Reparse Point, pomocí kterého je možné připojovat k souborům a složkám další data identifikovatelná pomocí značek. Byla zajištěna podpora Reparse Point v funkcích CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress().
- Pokračuje refaktoring implementace Common Control po rozdělení knihovny COMCTL32 na samostatné moduly pro verze 5 a 6.
- Byl vyřešen problém s náhodným pádem mnoha her (například Syberia 2) při použití módu WoW64 na systémech s GPU NVIDIA.
- Byl vyřešen problém se zpožděním reakce při stisknutí kláves ovládání kurzoru v některých hrách, jako je Might and Magic VI.
- Byl vyřešen problém s zamrzáním nebo nemožností spustit některé windowsové sestavy aplikací používajících knihovnu GTK, například Meld a Geany.
- Byly uzavřeny chybové hlášení související s fungováním aplikací: SQL Server 2012/2014, instalátor MS Office 365, 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.
- Byly uzavřeny chybové hlášení související s fungováním her: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 — Mutagen.
Projekt Wine také zveřejnil verzi balíčku vkd3d 1.18 s implementací Direct3D 12, která funguje prostřednictvím překladových volání do grafického API Vulkan. Součástí balíčku jsou knihovny libvkd3d s implementací Direct3D 12, libvkd3d-shader s překladačem modelů shaderů 4 a 5 a libvkd3d-utils s funkcemi pro usnadnění portování aplikací Direct3D 12, stejně jako sada demonstračních příkladů, včetně portu glxgears na Direct3D 12. Kód projektu je distribuován pod licencí LGPLv2.1.
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 haldových popisovačů, kořenových podpisů, neuspořádaného přístupu, samplerů, podpisů příkazů, kořenových konstant, nepřímého vykreslování, metod Clear*() a Copy*(). V libvkd3d-shader je implementován překlad bajtkódu modelů shaderů do mezilehlé reprezentace SPIR-V. Podporovány jsou vrcholové, pixelové, tesselační, výpočetní a prosté geometrické shadery, serializace a deserializace kořenového podpisu. Z instrukcí shaderů jsou implementovány aritmetické, atomové a bitové operace, operátory porovnání a řízení toku dat, instrukce sample, gather a load, operace neuspořádaného přístupu (UAV, Unordered Access View).
V nové verzi vkd3d:
- Do implementace jazyka shaderů HLSL byly přidány vestavěné funkce countbits(), firstbithigh(), firstbitlow(), frexp() a texCUBEbias(). Pro profily Shader Model 1-3 byla zajištěna podpora podmíněných výrazů s celočíselnými typy.
- V kompilátoru shaderů HLSL byla optimalizována kompilace kódu s podmínkovými operátory if/else. Bylo rozšířeno vyhodnocování konstant v průběhu kompilace (constant folding). Tato optimalizace nyní může být aplikována na výrazy jako „true ? x : y“ a funkce asfloat(), asint(), asuint(), cos(), mad(), round() a sin().
- Do knihovny libvkd3d byla v implementaci rozhraní ID3D12Device4 přidána metoda CreateCommandList1().
- Byly přidány instrukce bajtkódu Direct3D: bem, tex, texbem, texbeml a texcoord.
- Pokračovalo se ve vývoji implementace jazyka shaderů MSL (Metal Shading Language), který používá společnost Apple v grafickém API Metal. Byla přidána podpora pro výpočetní shadery, okamžitě inicializované konstantní buffery, trigonometrické funkce, operace pro získání zbytku a bitové procházení.
- Do implementace jazyka shaderů GLSL (OpenGL Shading Language) byly přidány bezznačné celočíselné operace dělení a získávání zbytku, funkce sin() a cos(), a možnost posunu texelů při načítání textur.
Kromě toho společnost Valve zveřejnila vydání VKD3D-Proton 3.0, odvozeninu od kódu vkd3d, vytvořenou pro zlepšení podpory Direct3D 12 v balíčku pro spuštění her Proton. Ve VKD3D-Proton jsou podporovány specifické pro Proton úpravy, optimalizace a vylepšení pro kvalitnější fungování her Windows založených na Direct3D 12, které zatím nebyly přijaty do hlavní verze vkd3d. Mezi odlišnostmi se také zmiňuje orientace na využití moderních rozšíření Vulkan a možností nových vydání grafických ovladačů pro dosažení plné kompatibility s Direct3D 12.
Mezi změnami v nové verzi vkd3d-proton:
- Backend shaderů DXBC (DirectX ByteCode) byl přepsán, čímž nahradil backend vkd3d-shader. Nový backend vyřešil problémy v mnoha hrách, které dříve vznikaly kvůli absenci potřebné funkčnosti ve vkd3d-shader, například byla zajištěna funkčnost hry Red Dead Redemption 2 v režimu D3D12.
- Byla přidána podpora technologie supersampling FSR4 (AMD FidelityFX Super Resolution).
- Byla přidána experimentální podpora pro grafy pracovních úloh D3D12 (Work Graphs).
- Byla přidána experimentální podpora pro mikromapy transparency (OMM — Opacity MicroMaps).
- Byly vyřešeny problémy v hrách 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.
Zdroj: opennet.ru
