Wine 11.17, en eksperimentel udgave af open source-implementeringen af Win32 API, er blevet udgivet. Siden udgivelsen af 11.16 er 44 fejlrapporter blevet lukket, og 387 ændringer er blevet foretaget.
De vigtigste ændringer:
- Der er tilføjet indledende understøttelse af skærmtilstandsemulering, hvilket gør det muligt for fuldskærmsapplikationer og spil at køre med deres egen virtuelle opløsning, som skaleres baseret på skærmens DPI under den faktiske rendering. For eksempel kan et ældre spil bruge en opløsning på 640x480, men vises på en skærm med højere opløsning, mens billedformatet bevares.
- Tilføjet understøttelse af funktionerne RtlGetSystemPreferredUILanguages og RtlGetUserPreferredUILanguages til at hente en liste over foretrukne grænsefladesprog, konfigureret i registreringsdatabasen for hele systemet og individuelle brugere, og genereret som standard baseret på lokale indstillinger. Funktionerne RtlGetProcessPreferredUILanguages, SetProcessPreferredUILanguages, RtlGetSetThreadPreferredUILanguages og SetThreadPreferredUILanguages er også tilføjet til at bestemme og indstille en liste over foretrukne sprog på proces- og trådniveau.
- Den indbyggede Vkd3d-pakke med Direct3D 12-implementering er blevet opdateret til version 2.1.
- Lukkede fejlrapporter relateret til følgende applikationer: 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.
- Lukkede fejlrapporter relateret til spillets drift: 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.
Derudover kan vi bemærke nye udgivelser af Wine-relaterede projekter:
- Wine Staging 11.17 er blevet udgivet og tilbyder udvidede Wine-builds, der inkluderer ufuldstændige eller risikable programrettelser, der endnu ikke er egnede til integration i Wine-hovedgrenen. Sammenlignet med Wine tilbyder Wine Staging 279 yderligere programrettelser. Den nye Wine Staging-udgivelse synkroniserer med Wine 11.17-kodebasen og opdaterer vkd3d-koden. En programrettelse, der implementerer SetThreadpoolTimerEx-funktionen i kernel32.dll-biblioteket, er blevet porteret til Wine-hoveddistributionen.
- Jeg har udgivet vkd3d 2.1, en Direct3D 12-implementering, der fungerer via kaldoversættelse til Vulkan-grafik-API'en. Pakken indeholder libvkd3d-biblioteket med Direct3D 12-implementeringen, libvkd3d-shader med en shadermodeloversætter og libvkd3d-utils med funktioner til at forenkle portering af Direct3D 12-applikationer. Den indeholder også et sæt demoer, inklusive en portering af glxgears til Direct3D 12. libvkd3d-biblioteket understøtter de fleste Direct3D 12-funktioner, inklusive grafik- og beregningsværktøjer, køer og kommandolister, deskriptorer og heap-deskriptorer, rodsignaturer, uordnet adgang, samplere, kommandosignaturer, rodkonstanter, indirekte rendering og metoderne Clear*() og Copy*(). libvkd3d-shader implementerer oversættelse af shadermodelbytekode til SPIR-V mellemrepræsentation.
I den nye version af vkd3d:
- Implementeringen af HLSL-shadersprog er blevet opdateret for at understøtte aritmetiske operationer med typen "half" ved brug af shadermodellerne 4 og 5.
- HLSL shader-compileren har styrket input- og outputdatakontroller og implementeret en gennemgang for at fjerne ubrugte globale variabler (uniformer) i shadermodellerne 1-3.
- GLSL (OpenGL Shading Language) backend implementerer understøttelse af indirekte adressering af inputregistre, atomar sammenligning og heltalsaddition, bitvise operationer og barrierer, indlæsnings-/lagringsoperationer for UAV (Unordered Access View) og delt hukommelse for en trådgruppe.
- Forbedret understøttelse af det ældre Direct3D binære shaderformat. Implementerede instruktionerne "sub" og "break_cmp", instruktionsmodifikatorerne "_x2", "_x4", "_x8", "_d2", "_d4" og "_d8" samt operandmodifikatorerne "_bias", "_x2" og "_bx2".
- Ved konvertering til den mellemliggende repræsentation af SPIR-V shaders er der tilføjet understøttelse af operationer, der konverterer flydende kommatal til 64-bit heltal.
- Libvkd3d-utils har udvidet understøttelse af shader-refleksions-API'en. Grænsefladerne ID3D10ShaderReflection, ID3D10ShaderReflection1 og ID3D11ShaderReflection er nu implementeret, såvel som de fleste metoder i grænsefladerne ID3D12ShaderReflection og ID3D12ShaderReflectionType.
- Tilføjede indstillingen "--allow-half-globals" til vkd3d-compiler og VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_ALLOW_HALF_GLOBALS-flaget til libvkd3d-shader for at kompilere globale variabler af typen "half" til en repræsentation af typen "float".
- DXVK 3.1 er blevet udgivet og leverer en implementering af DXGI (DirectX Graphics Infrastructure), Direct3D 8, 9, 10 og 11, der fungerer via kaldsoversættelse til Vulkan API'en. Brug af DXVK kræver drivere, der understøtter Vulkan 1.4 API'en, såsom NVIDIA 575.51.02, Mesa AMD RADV 25.0, NVIDIA 25.1 og Intel ANV 25.1. DXVK kan bruges til at køre 3D-applikationer og spil i Linux ved hjælp af Wine, der fungerer som et mere ydende alternativ til Wines indbyggede Direct3D-implementeringer, der kører oven på OpenGL.
I den nye version:
- Tilføjet understøttelse af trinvis rendering i DXGI, implementeret ved hjælp af VK_KHR_incremental_present Vulkan-udvidelsen. Dette giver mulighed for kun at opdatere de områder af skærmen, der er ændret. Denne nye funktion løser renderingsproblemer i VirtualDJ og forskellige spilstartere, såsom Ubisoft Connect.
- Tilføjet understøttelse af oprettelse af render-målvisninger direkte i buffere, hvilket løste problemer med cloud-rendering-artefakter i nogle Frostbite-drevne spil, såsom Battlefield 3.
- Implementerede indlæsning af biblioteker for at understøtte Intel GPU-specifikke udvidelser (leverandørudvidelser).
- Løste problemer med Mabinogi, The Witcher 1, Ghost Recon Breakpoint, Mirrors Edge og RaceRoom Racing Experience.
- D7VK 2.2-projektet er blevet udgivet og udvikler implementeringen af Direct3D 3, 5, 6 og 7 grafik-API'erne, som blev foreslået af Microsoft i 1996, 1997, 1998 og 1999. D7VK fungerer ved at oversætte kald til Vulkan API'en og giver dig mulighed for at køre i Linux Retrospil baseret på Direct3D 3, 5, 6 og 7 API'er. Projektkoden er skrevet i C++ og distribueret under Zlib-licensen. Udviklingen er baseret på d3d9-backend-koden fra DXVK-projektet. D7VK konverterer Direct3D 3, 5, 6 og 7 API'er til Direct3D 9-kald, som derefter oversættes til Vulkan API'en. Udvikleren har ikke til hensigt at søge at inkludere D7VK i DXVK, som det var tilfældet med Direct3D 8- og Direct3D 9-implementeringerne oven på Vulkan.
Den nye version overgår til version 3.1 DXVK, omarbejder D3D3's bufferkontrol og -genoptælling for D3D3-enheder og forbedrer teksturhåndtering for D3D5/3. Der er foretaget rettelser for at forbedre understøttelsen af følgende spil: Palantírs i Ringenes Herre, Resident Evil 2 og Frogger.
Kilde: opennet.ru
