De experimentele uitgave van de open implementatie van de Win32 API — Wine 11.17 is uitgebracht. Sinds de release van 11.16 zijn er 44 bugrapporten gesloten en 387 wijzigingen aangebracht.
De belangrijkste wijzigingen:
- Eerste ondersteuning toegevoegd voor het emuleren van schermmodi, waardoor het mogelijk is om fullscreen applicaties en games te draaien met een eigen virtuele resolutie die bij de werkelijke rendering schaalt op basis van de DPI van de huidige monitor. Bijvoorbeeld, een oude game kan een resolutie van 640×480 gebruiken, maar weergegeven worden op een scherm met hogere resolutie terwijl de verhoudingen behouden blijven.
- Ondersteuning toegevoegd voor de functies RtlGetSystemPreferredUILanguages en RtlGetUserPreferredUILanguages voor het verkrijgen van een lijst van favoriete talen in de interface die in de register zijn ingesteld voor het hele systeem en individuele gebruikers, en standaard gegenereerd op basis van de lokale instellingen. Ook zijn de functies RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages, SetThreadPreferredUILanguages toegevoegd voor het vaststellen en instellen van de lijst van voorkeurstalen op procese en threadniveau.
- De ingebouwde Vkd3d-pakket met de implementatie van Direct3D 12 is bijgewerkt naar versie 2.1.
- Bugrapporten gesloten die verband houden met de werking van applicaties: 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.
- Bugrapporten gesloten die verband houden met de werking van games: 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.
Daarnaast kunnen nieuwe uitgaven van gerelateerde Wine-projecten worden opgemerkt:
- De release van het Wine Staging-project 11.17 is gevormd, die uitgebreide wijnbouwsels biedt, inclusief niet volledig gereed of risicovolle patches die nog niet geschikt zijn voor opname in de hoofdvertakking van Wine. In vergelijking met Wine zijn er 279 extra patches in Wine Staging beschikbaar. In de nieuwe versie van Wine Staging is er een synchronisatie met de codebasis van Wine 11.17 en is de vkd3d-code bijgewerkt. De patch die de functie SetThreadpoolTimerEx implementeert in de kernel32.dll-bibliotheek is overgebracht naar de hoofdversie van Wine.
- De release van het vkd3d 2.1-pakket is gepubliceerd, met een implementatie van Direct3D 12 die werkt via oproeptranslatie naar de grafische API Vulkan. Het pakket bevat de bibliotheken libvkd3d met de implementatie van Direct3D 12, libvkd3d-shader met een translator voor shader-modellen en libvkd3d-utils met functies die het porteren van Direct3D 12-applicaties vergemakkelijken, evenals een set demonstratievoorbeelden, inclusief de poort van glxgears naar Direct3D 12. De libvkd3d-bibliotheek ondersteunt de meeste functies van Direct3D 12, waaronder middelen voor grafiek en berekeningen, queues en commandolijsten, descriptors en heap-descriptors, root-signatures, ongeordende toegang, samplers, command-signatures, root-constanten, indirecte rendering, en de Clear*() en Copy*() methoden. In libvkd3d-shader is de translatie van shader-modellen bytecode naar de tussentijdse representatie SPIR-V geïmplementeerd.
In de nieuwe versie van vkd3d:
- In de implementatie van de HLSL-shader-taal is ondersteuning toegevoegd voor rekenkundige bewerkingen met het type 'half' bij het gebruik van shader-modellen 4 en 5.
- In de HLSL-shadercompiler zijn de controles van invoer- en uitvoergegevens versterkt, en is er een pass geïmplementeerd om ongebruikte globale (uniform) variabelen in shader-modellen 1-3 te verwijderen.
- In de backend voor de GLSL-shader-taal (OpenGL Shading Language) is ondersteuning geïmplementeerd voor indirecte adressering van invoerregisters, atomische vergelijkingsbewerkingen en gehele optellingen, bitbewerkingen en barrières, evenals laad-/opslagbewerkingen voor UAV (Unordered Access View) en gedeeld geheugen in de threadgroup.
- De ondersteuning voor het oude binaire shaderformaat van Direct3D is verbeterd. Instructies zoals 'sub' en 'break_cmp' zijn geïmplementeerd, samen met instructiemodifiers '_x2', '_x4', '_x8', '_d2', '_d4' en '_d8', evenals operandmodifiers '_bias', '_x2' en '_bx2'.
- Bij de conversie naar de tussentijdse representatie van shaders SPIR-V is ondersteuning toegevoegd voor conversiebewerkingen van floating-point getallen naar 64-bits gehele getallen.
- In libvkd3d-utils is de ondersteuning voor de shaderreflectie-API uitgebreid. Interfaces zoals ID3D10ShaderReflection, ID3D10ShaderReflection1 en ID3D11ShaderReflection zijn geïmplementeerd, evenals de meeste methoden van de interfaces ID3D12ShaderReflection en ID3D12ShaderReflectionType.
- In vkd3d-compiler is de optie '--allow-half-globals' toegevoegd, en in libvkd3d-shader de vlag VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS voor het compileren van globale variabelen van het type 'half' naar een representatie van het type 'float'.
- De uitgave van de DXVK 3.1-layer is gevormd, die de implementatie van DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 en 11 biedt, werkend via de vertaling van oproepen naar de Vulkan API. Om DXVK te gebruiken, zijn stuurprogramma's nodig die de Vulkan API 1.4 ondersteunen, zoals NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 en Intel ANV 25.1. DXVK kan worden gebruikt om 3D-applicaties en -spellen op Linux te draaien met behulp van Wine, als een hogere prestatie-alternatief voor de geïntegreerde implementaties van Direct3D in Wine, die werken bovenop OpenGL.
In de nieuwe versie:
- Ondersteuning voor incrementele weergave is toegevoegd aan DXGI, geïmplementeerd met de Vulkan-uitbreiding VK_KHR_incremental_present, waarmee alleen de gewijzigde gebieden op het scherm worden bijgewerkt. Deze nieuwe functie heeft problemen met rendering in VirtualDJ en verschillende game-launchers, zoals Ubisoft Connect, opgelost.
- Ondersteuning voor het creëren van render target views rechtstreeks in buffers is toegevoegd, wat problemen met het verschijnen van artefacten bij het renderen van wolken in bepaalde spellen op de Frostbite-engine, zoals Battlefield 3, heeft opgelost.
- De mogelijkheid om bibliotheken te laden voor het ondersteunen van GPU-specifieke Intel-uitbreidingen (vendor extensions) is geïmplementeerd.
- Problemen in de spellen Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge, RaceRoom Racing Experience zijn opgelost.
- De uitgave van het D7VK 2.2-project is gepubliceerd, dat de implementatie van de grafische API's Direct3D 3, 5, 6 en 7 ontwikkelt, voorgesteld door Microsoft in de jaren 1996, 1997, 1998 en 1999. D7VK werkt via de vertaling van oproepen naar de Vulkan API en stelt gebruikers in staat retro-spellen, gebonden aan de Direct3D 3, 5, 6 en 7 API's, op Linux uit te voeren met Wine. De code van het project is geschreven in C++ en wordt verspreid onder de Zlib-licentie. De code van de d3d9-backend van het DXVK-project is als basis gebruikt — D7VK zet de Direct3D 3, 5, 6 en 7 API's om in oproepen naar Direct3D 9, die vervolgens worden vertaald naar de Vulkan API. De ontwikkelaar is niet van plan om D7VK in DXVK op te nemen, zoals dat het geval was met de implementaties van Direct3D 8 en Direct3D 9 bovenop Vulkan.
In de nieuwe versie is overgestapt naar werken bovenop de DXVK 3.1-uitgave, is de controle van uitvoerbare D3D3-buffers en de telkundige functie (refcounting) voor D3D3-apparaten herzien, en is de verwerking van texturen voor D3D5/3 verbeterd. Correcties zijn aangebracht die de ondersteuning voor de spellen: Palantírs in The Lord of the Rings, Resident Evil 2 en Frogger verbeteren.
Bron: opennet.ru
