Den eksperimentelle udgave af den åbne implementering af Win32 API - Wine 11.17 er offentliggjort. Siden udgivelsen af 11.16 er 44 fejlrapporter blevet lukket, og 387 ændringer er blevet foretaget.
De vigtigste ændringer:
- Der er tilføjet grundlæggende support til emulering af skærmtilstande, som gør det muligt at køre fuldskærmsapplikationer og spil med deres virtuelle opløsning, som under den faktiske gengivelse skaleres i henhold til DPI på den tilgængelige skærm. For eksempel kan et gammelt spil bruge en opløsning på 640×480, men vises på en skærm med højere opløsning med bevarelse af proportioner.
- Der er tilføjet support for funktionerne RtlGetSystemPreferredUILanguages og RtlGetUserPreferredUILanguages for at hente listen over foretrukne sprog i grænsefladen, der er angivet i registreringsdatabasen for hele systemet og enkelte brugere, som som standard dannes baseret på lokalindstillingerne. Der er også tilføjet funktioner som RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages, SetThreadPreferredUILanguages til at bestemme og indstille listen over foretrukne sprog på niveau med processer og tråde.
- Den indbyggede Vkd3d-pakke med implementeringen af Direct3D 12 er opdateret til version 2.1.
- Fejlrapporter relateret til anvendelser er blevet lukket: 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.
- Fejlrapporter relateret til spil er blevet lukket: 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.
Yderligere kan man nævne nye udgivelser relateret til Wine-projekter:
- Udgivelsen af Wine Staging 11.17 er blevet dannet, hvilket giver udvidede Wine-bygninger, der inkluderer ikke helt færdige eller risikable patches, som endnu ikke er egnet til optagelse i hovedgrenen af Wine. I sammenligning med Wine tilbyder Wine Staging 279 yderligere patches. I den nye udgivelse af Wine Staging er der foretaget synkronisering med Wine-kodebasen 11.17, og koden for vkd3d er blevet opdateret. En patch, der implementerer funktionen SetThreadpoolTimerEx i kernel32.dll-biblioteket, er blevet overført til hovedkomponenten af Wine.
- Udgivet version 2.1 af vkd3d med implementering af Direct3D 12, der fungerer via kaldesturnering til Vulkan-grafik-API'en. Pakken inkluderer bibliotekerne libvkd3d med implementering af Direct3D 12, libvkd3d-shader med oversætter til shader-modeller og libvkd3d-utils med funktioner til at lette porting af Direct3D 12-applikationer, samt et sæt demonstrations-eksempler, herunder porteringen af glxgears til Direct3D 12. Biblioteket libvkd3d understøtter størstedelen af funktionerne i Direct3D 12, herunder værktøjer til grafik og beregninger, køer og kommandolister, beskrivelser og fakkel-deskriptorer, rodfirma-signaturer, uordenligt adgang, sampler, kommandosignaturer, rodkonstanter, indirekte rendering, Clear*() metoder og Copy*(). I libvkd3d-shader er oversættelsen af shader-modellernes bytekode til intermellem repræsentation SPIR-V implementeret.
I den nye version af vkd3d:
- I implementeringen af HLSL shader-sproget er der tilføjet understøttelse af aritmetiske operationer med typen "half" ved brug af 4 og 5 shader-modeller.
- I HLSL shader-kompilerens kontroller er indgangen og udgangen blevet styrket, og der er implementeret et pass til at fjerne ubrugte globale variabler (uniform) i 1-3 shader-modeller.
- I backend'en for GLSL (OpenGL Shading Language) shader-sproget er der implementeret understøttelse af indirekte adressering af indgangsregistre, atomære operations sammenligninger og heltalsaddition, bitoperationer og barrierer, samt load/store operationer til UAV (Unordered Access View) og delt hukommelse for trådgrupper.
- Understøttelsen af det tidligere binære format for Direct3D-shaderne er forbedret. Instruktionerne "sub" og "break_cmp" er implementeret, samt instruktion-modifikatorerne "_x2", "_x4", "_x8", _’d2’, "_d4" og "_d8", samt operand-modifikatorerne "_bias", "_x2" og "_bx2".
- Ved konvertering til intermellem repræsentation af SPIR-V har der været tilføjet støtte til konverteringsoperationer fra flydende tal til 64-bit heltal.
- I libvkd3d-utils er understøttelsen af shader-refleksions-API'en blevet udvidet. Interfaces ID3D10ShaderReflection, ID3D10ShaderReflection1 og ID3D11ShaderReflection er implementeret, samt størstedelen af metoderne fra ID3D12ShaderReflection og ID3D12ShaderReflectionType interfaces.
- I vkd3d-compiler er der tilføjet en mulighed "--allow-half-globals", og i libvkd3d-shader er flaget VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS tilføjet til kompilering af globale variabler med typen "half" til representation med typen "float".
- Udgaven er en DXVK 3.1 lag, som tilbyder implementering af DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 og 11, der fungerer ved at konvertere kald til Vulkan API. For at bruge DXVK kræves der drivere, der understøtter Vulkan API 1.4, såsom NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 og Intel ANV 25.1. DXVK kan benyttes til at køre 3D-applikationer og spil på Linux ved hjælp af Wine og fungerer som et mere højtydende alternativ til de indbyggede Direct3D-implementeringer i Wine, der arbejder på OpenGL.
I den nye version:
- Der er tilføjet støtte til inkrementel gengivelse i DXGI, realiseret ved hjælp af Vulkan-udvidelsen VK_KHR_incremental_present, som gør det muligt kun at opdatere de ændrede områder på skærmen. Den nye funktion løser problemer med gengivelse i VirtualDJ og forskellige spilkunder, såsom Ubisoft Connect.
- Der er tilføjet støtte til at oprette render target views direkte i buffere, hvilket løste problemer med artefakter ved gengivelse af skyer i visse spil på Frostbite-motoren, såsom Battlefield 3.
- Der er implementeret indlæsning af biblioteker for at understøtte GPU-specifikke Intel udvidelser (vendor extensions).
- Problemerne i spillene Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge, RaceRoom Racing Experience er løst.
- Udgivelsen af D7VK 2.2-projektet er offentliggjort, som udvikler implementeringen af grafiske API'er Direct3D 3, 5, 6 og 7, foreslået af Microsoft i 1996, 1997, 1998 og 1999. D7VK fungerer ved at konvertere kald til Vulkan API og muliggør, at retrospil bundet til Direct3D 3, 5, 6 og 7 kan køres på Linux via Wine. Projektets kode er skrevet i C++ og distribueres under Zlib-licensen. Som basis for udviklingen er koden fra DXVK-projektets d3d9 backend blevet anvendt — D7VK konverterer Direct3D 3, 5, 6 og 7 API'er til Direct3D 9 kald, som derefter konverteres til Vulkan API. Udvikleren har ikke til hensigt at inkludere D7VK i DXVK, som det blev gjort med Direct3D 8 og Direct3D 9 implementeringer over Vulkan.
I den nye version er der sket en overgang til at arbejde oven på DXVK 3.1-udgivelsen, kontrollen af D3D3 eksekverbare buffere og refcounting for D3D3-enheder er blevet revideret, og teksturbehandlingen til D3D5/3 er forbedret. Der er lavet rettelser, der forbedrer understøttelsen af spil: Palantírs in The Lord of the Rings, Resident Evil 2 og Frogger.
Kilde: opennet.ru
