De experimentele release van de open implementatie van de Win32 API - Wine 10.20 is uitgebracht. Sinds de release van 10.19 zijn 31 bugrapporten gesloten en zijn er 337 wijzigingen aangebracht.
De belangrijkste wijzigingen:
- Het ingebouwde Vkd3d-pakket met implementatie van Direct3D 12 is bijgewerkt naar versie 1.18.
- Er is een dialoogvenster toegevoegd voor het weergeven van de voortgang van het scannen van documenten.
- De implementatie van het Reparse Point-mechanisme is voortgezet, waarmee extra gegevens aan bestanden en mappen kunnen worden gekoppeld die kunnen worden geïdentificeerd via tags. Ondersteuning voor Reparse Point is geboden in de functies CreateHardLink(), SetFileAttributes(), FindNextFile(), MoveFileWithProgress().
- De refactoring van de common control-implementatie is voortgezet na de splitsing van de COMCTL32-bibliotheek in afzonderlijke modules voor versies 5 en 6.
- Het probleem met het onverwacht afsluiten van veel spellen (zoals Syberia 2) bij het gebruik van de WoW64-modus op systemen met een NVIDIA GPU is opgelost.
- Het probleem met het vastlopen van de respons bij het indrukken van de cursorbedieningsknoppen in sommige spellen, zoals Might and Magic VI, is opgelost.
- Het probleem met het vastlopen of niet kunnen starten van bepaalde Windows-builds van applicaties die de GTK-bibliotheek gebruiken, zoals Meld en Geany, is opgelost.
- Bugrapporten met betrekking tot de werking van applicaties zijn gesloten: SQL Server 2012/2014, MS Office 365-installateur, 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.
- Bugrapporten met betrekking tot de werking van spellen zijn gesloten: Civilization 1.2, StarCraft, Last Stand: Aftermath, Mega Man X DiVE, Wagotabi, Geneforge 1 - Mutagen.
Het Wine-project heeft ook de release van het vkd3d-pakket 1.18 met de implementatie van Direct3D 12, die via een vertaling van de aanroepen naar de Vulkan grafische API werkt, gepubliceerd. Het pakket bevat de bibliotheken libvkd3d met de implementatie van Direct3D 12, libvkd3d-shader met vertalers voor shader modellen 4 en 5, en libvkd3d-utils met functies voor het vergemakkelijken van de portering van Direct3D 12-applicaties, evenals een set demonstratievoorbeelden, waaronder de port van glxgears naar Direct3D 12. De code van het project wordt verspreid onder de LGPLv2.1-licentie.
De libvkd3d-bibliotheek ondersteunt het merendeel van de mogelijkheden van Direct3D 12, inclusief middelen voor graphics en berekeningen, wachtrijen en commando-lijsten, descripteurs en heap-descripteurs, root-signaturen, ongeordende toegang, samplers, command-signaturen, root-constanten, indirecte rendering, de Clear*() en Copy*() methoden. In libvkd3d-shader is de vertaling van bytecode van shader-modellen naar de tussenliggende weergave SPIR-V geïmplementeerd. Er worden vertex-, pixel-, tessellation-, compute- en eenvoudige geometrische shaders ondersteund, evenals serialisatie en deserialisatie van root-signaturen. Van de shader-instructies zijn rekenkundige, atomische en bitbewerkingen, vergelijkings- en controleflow-operators, sample-, gather- en load-instructies, en operaties voor ongeordende toegang (UAV, Unordered Access View) geïmplementeerd.
In de nieuwe versie van vkd3d:
- Er zijn ingebouwde functies toegevoegd aan de implementatie van de HLSL-shadertaal: countbits(), firstbithigh(), firstbitlow(), frexp() en texCUBEbias(). Voor Shader Model 1-3 is ondersteuning voor voorwaardelijke expressies met gehele getallen geïmplementeerd.
- In de HLSL-shadercompiler is de compilatie van code met if/else-voorwaardelijke instructies geoptimaliseerd. De constante berekening tijdens de compilatiefase is uitgebreid (constant folding). Deze optimalisatie kan nu ook worden toegepast op expressies zoals "true ? x : y" en functies als asfloat(), asint(), asuint(), cos(), mad(), round() en sin().
- In de libvkd3d-bibliotheek is de methode CreateCommandList1() toegevoegd aan de implementatie van de ID3D12Device4-interface.
- Direct3D bytecode-instructies zijn toegevoegd: bem, tex, texbem, texbeml en texcoord.
- De ontwikkeling van de shader-taal MSL (Metal Shading Language), gebruikt door Apple in de grafische API Metal, is voortgezet. Ondersteuning voor compute shaders, onmiddellijk te initialiseren constant buffers, trigonometrische functies, modulus-operaties en bitwise shifting is toegevoegd.
- De implementatie van de shader-taal GLSL (OpenGL Shading Language) heeft ongetekende gehele delings- en modulusoperaties, de functies sin() en cos(), en de mogelijkheid tot texel-offset bij het laden van texturen toegevoegd.
Bovendien heeft Valve VKD3D-Proton 3.0 uitgebracht, een tak van de vkd3d-codebasis, die is gemaakt om de ondersteuning voor Direct3D 12 in de Proton-game-launcher te verbeteren. VKD3D-Proton ondersteunt Proton-specifieke wijzigingen, optimalisaties en verbeteringen voor een betere werking van Windows-games op basis van Direct3D 12, die nog niet in de hoofdversie van vkd3d zijn opgenomen. Ook wordt opgemerkt dat het zich richt op het gebruik van moderne Vulkan-uitbreidingen en mogelijkheden van recente grafische stuurprogramma-uitgaven voor volledige compatibiliteit met Direct3D 12.
Onder de wijzigingen in de nieuwe versie van vkd3d-proton:
- De DXBC-shaderbackend (DirectX ByteCode) is herschreven, die de vkd3d-shaderbackend heeft vervangen. De nieuwe backend loste problemen op in veel games die eerder werden veroorzaakt door de afwezigheid van de benodigde functionaliteit in vkd3d-shader, bijvoorbeeld het probleem met de game Red Dead Redemption 2 in D3D12-modus is opgelost.
- Ondersteuning voor de FSR4-super-samplingtechnologie (AMD FidelityFX Super Resolution) is toegevoegd.
- Experimentele ondersteuning voor D3D12-taakgrafieken (Work Graphs) is toegevoegd.
- Experimentele ondersteuning voor opacity micro-maps (OMM) is toegevoegd.
- Problemen zijn opgelost in de games 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.
Bron: opennet.ru
