Stabil utgåva av Wine 5.0

Efter ett års utveckling och 28 experimentella versioner presenteras stabil utgåva av den öppna implementeringen av Win32 API - Vin 5.0, vilket inkluderade mer än 7400 2 ändringar. Nyckelprestationerna för den nya versionen inkluderar leverans av inbyggda vinmoduler i PE-format, stöd för konfigurationer med flera bildskärmar, en ny implementering av XAudio1.1 audio API och stöd för Vulkan XNUMX grafik API.

I vin bekräftad full drift av 4869 (för ett år sedan 4737) program för Windows, ytterligare 4136 (för ett år sedan 4045) program fungerar perfekt med ytterligare inställningar och externa DLL:er. 3635 XNUMX program har mindre prestandaproblem som inte stör användningen av grundläggande applikationsfunktioner.

Nyckel innovationer Vin 5.0:

  • Moduler i PE-format
    • Med MinGW-kompilatorn är de flesta Wine-moduler nu byggda i PE (Portable Executable, används på Windows) körbara filformat istället för ELF. Användningen av PE löser problem med att stödja olika kopieringsskyddssystem som verifierar identiteten för systemmoduler på disk och i minne;
    • PE-körbara filer kopieras nu till katalogen ~/.wine ($WINEPREFIX) istället för att använda dummy-DLL-filer, vilket gör sakerna mer lik riktiga Windows-installationer, till priset av att konsumera ytterligare diskutrymme;
    • Moduler konverterade till PE-format kan använda standard wchar C-funktioner och konstanter med Unicode (till exempel L"abc");
    • Wine C runtime har lagt till stöd för länkning med binärer inbyggda i MinGW, som används som standard istället för MinGW runtime när man bygger DLL:er;
  • Grafiskt delsystem
    • Tillagt stöd för att arbeta med flera bildskärmar och grafikadaptrar, inklusive möjligheten att dynamiskt ändra inställningar;
    • Drivrutinen för Vulkans grafik-API har uppdaterats för att överensstämma med Vulkan 1.1.126-specifikationen;
    • WindowsCodecs-biblioteket ger möjlighet att konvertera ytterligare rasterformat, inklusive format med en indexerad palett;
  • Direct3D
    • När du kör Direct3D-program i helskärmsläge blockeras skärmsläckaranropet;
    • DXGI (DirectX Graphics Infrastructure) har lagt till stöd för att informera en applikation när dess fönster är minimerat, vilket gör att applikationen kan minska prestandan för resurskrävande operationer när fönstret minimeras;
    • För applikationer som använder DXGI är det nu möjligt att växla mellan helskärmsläge och fönsterläge med kombinationen Alt+Enter;
    • Möjligheterna för Direct3D 12-implementeringen har utökats, till exempel finns det nu stöd för att växla mellan helskärms- och fönsterläge, ändra skärmlägen, skala utdata och hantera renderingsbuffertersättningsintervallet (växlingsintervall);
    • Förbättrad hantering av olika gränssituationer, som att använda indatavärden utanför intervallet för transparens- och djuptester, rendering med reflekterade texturer och buffertar och användning av felaktiga DirectDraw-objekt clipper, skapa Direct3-enheter för felaktiga fönster, använda synliga områden vars lägsta parametervärden är lika med maximum, etc.
    • Direct3D 8 och 9 ger mer exakt spårning "smutsig» områden med laddade texturer;
    • Storleken på det erforderliga adressutrymmet vid laddning av 3D-texturer komprimerade med S3TC-metoden har reducerats (istället för att ladda helt, texturer laddas i bitar).
    • Gränssnitt implementerat ID3D11Multithread för att skydda kritiska sektioner i flertrådade applikationer;
    • Olika förbättringar och fixar relaterade till belysningsberäkningar har gjorts för äldre DirectDraw-applikationer;
    • Implementerade ytterligare anrop för att få information om shaders i API:et ShaderReflection;
    • Wined3d stöder nu blitter CPU-baserad för bearbetning av komprimerade resurser;
    • Databasen med grafikkort som känns igen i Direct3D har utökats;
    • Lade till nya registernycklar HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend för att arbeta med shaders: "glsl" för GLSL, "arb" för ARB vertex/fragment och "none" för att inaktivera shader-stöd), "strict_shader_math" ( 0x1 - aktivera, 0x0 - inaktivera Direct3D shader-konvertering). Utfasade "UseGLSL"-nyckeln (ska använda "shader_backend");
  • D3DX
    • Stöd för 3D-texturkomprimeringsmekanismen S3TC (S3 Texture Compression) har implementerats;
    • Lade till korrekta implementeringar av operationer som texturfyllning och omappbara ytor;
    • Olika förbättringar och korrigeringar har gjorts i ramverket för skapande visuella effekter;
  • Kernel (Windows Kernel Interfaces)
    • De flesta av funktionerna som används i Kernel32 har flyttats till
      KernelBase, efter ändringar i Windows-arkitekturen;

    • Möjlighet att blanda 32- och 64-bitars DLL:er i kataloger som används för att ladda. Säkerställer att bibliotek som inte matchar det aktuella bitdjupet ignoreras (32/64), i fall längre fram på vägen är det möjligt att hitta ett bibliotek som är korrekt för det aktuella bitdjupet;
    • För enhetsdrivrutiner har emulering av kärnobjekt förbättrats;
    • Implementerade synkroniseringsobjekt som arbetar på kärnnivå, såsom spinnlås, snabba mutexer och variabler kopplade till en resurs;
    • Säkerställer att applikationer är korrekt informerade om batteristatus;
  • Användargränssnitt och skrivbordsintegration
    • Minimerade fönster visas nu med en namnlist istället för en Windows 3.1-stilikon;
    • Lade till nya knappstilar SplitButton (knapp med en rullgardinslista med åtgärder) och Kommandolänkar (länkar i dialogrutor som används för att gå till nästa steg);
    • Symboliska länkar har skapats för mapparna "Nedladdningar" och "Mallar", som pekar på motsvarande kataloger på Unix-system;
  • Ange enheter
    • Vid start installeras och laddas nödvändiga Plug & Play-enhetsdrivrutiner;
    • Förbättrat stöd för spelkontroller, inklusive en mini-joystick (hattbrytare), ratt, gas- och bromspedaler.
    • Stöd för det gamla Linux joystick API som användes i Linux-kärnor före version 2.2 har upphört;
  • . NET
    • Mono-motorn har uppdaterats till release 4.9.4 och inkluderar nu delar av Windows Presentation Foundation (WPF) ramverket;
    • Lade till möjligheten att installera tillägg med Mono och Gecko i en gemensam katalog, placera filer i /usr/share/wine-hierarkin istället för att kopiera dem till nya prefix;
  • Nätverksfunktioner
    • Webbläsarmotorn Wine Gecko, som används i MSHTML-biblioteket, har uppdaterats till release 2.47.1. Stöd för nya HTML-API:er har implementerats;
    • MSHTML stöder nu SVG-element;
    • Lade till många nya VBScript-funktioner (till exempel fel- och undantagshanterare, Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* och ScriptTypeComp_Bind* funktioner, etc.);
    • Förutsatt bevarande av kodtillstånd i VBScript och JScript (skriptbeständighet);
    • Lade till en initial implementering av HTTP-tjänsten (WinHTTP) och tillhörande API (HTTPAPI) för klient- och serverapplikationer som skickar och tar emot förfrågningar med hjälp av HTTP-protokollet;
    • Implementerat möjligheten att få HTTP-proxyinställningar via DHCP;
    • Lade till stöd för att omdirigera autentiseringsbegäranden via Microsoft Passport-tjänsten;
  • Kryptografi
    • Implementerat stöd för elliptiska kurvor kryptografiska nycklar (ECC) vid användning av GnuTLS;
    • Lade till möjligheten att importera nycklar och certifikat från filer i PFX-format;
    • Lade till stöd för nyckelgenereringsschemat baserat på PBKDF2-lösenordet;
  • Text och typsnitt
    • DirectWrite API-implementeringen har lagt till stöd för OpenType-funktioner relaterade till glyfpositionering, som är aktiverade som standard för den latinska stilen, inklusive kerning;
    • Förbättrad säkerhet för bearbetning av teckensnittsdata genom att kontrollera att olika datatabeller är korrekta innan de används;
    • DirectWrite-gränssnitten har anpassats till den senaste SDK;
  • Ljud och video
    • En ny implementering av ljud-API har föreslagits XAudio2, byggd på grundval av projektet FAudio. Genom att använda FAudio i Wine kan du uppnå högre ljudkvalitet i spel och använda funktioner som volymmixning och avancerade ljudeffekter;
    • Ett stort antal nya samtal har lagts till i implementeringen av Media Foundation-ramverket, inklusive stöd för inbyggda och anpassade asynkrona köer, Source Reader API, Media Session, etc.
    • Videoinsamlingsfiltret har bytts till att använda v4l2 API istället för v4l1 API, vilket har utökat utbudet av kameror som stöds;
    • De inbyggda AVI-, MPEG-I- och WAVE-avkodarna har tagits bort, istället för vilka systemet GStreamer eller QuickTime nu används;
    • Lade till en undergrupp av VMR7-konfigurations-API:er;
    • Tillagt stöd för att justera volymen för enskilda kanaler till ljuddrivrutiner;
  • Internationalisering
    • Unicode-tabeller uppdaterade till version 12.1.0;
    • Implementerat stöd för Unicode-normalisering;
    • Tillhandahöll automatisk installation av den geografiska regionen (HKEY_CURRENT_USER\Control Panel\International\Geo) baserat på den aktuella lokalen;
  • RPC/COM
    • Lade till stöd för komplexa strukturer och arrayer till typelib;
    • Lade till initial implementering av Windows Script runtime-bibliotek;
    • Lade till initial implementering av ADO-biblioteket (Microsoft ActiveX Data Objects);
  • Installatörer
    • Stöd för leverans av patchar (patchfiler) har implementerats för MSI-installeraren;
    • Verktyget WUSA (Windows Update Standalone Installer) har nu möjlighet att installera uppdateringar i .MSU-format;
  • ARM-plattform
    • För ARM64-arkitekturen har stöd för stackavveckling lagts till i ntdll. Tillagt stöd för att ansluta externa libunwind-bibliotek;
    • För ARM64-arkitekturen har stöd för sömlösa proxyservrar implementerats för objektgränssnitt;
  • Utvecklingsverktyg / Winelib
    • Lade till möjligheten att använda felsökaren från Visual Studio för att fjärrfelsöka applikationer som körs i Wine;
    • DBGENG-biblioteket (Debug Engine) har delvis implementerats;
    • Binärfiler kompilerade för Windows är inte längre beroende av libwine, vilket gör att de kan köras på Windows utan ytterligare beroenden;
    • Lade till alternativet '--sysroot' till Resource Compiler och IDL Compiler för att bestämma sökvägen för header-filer;
    • Lade till alternativ '—target', '—wine-objdir', '—wine-objdir' till winegcc
      ’—winebuild’ och ’-fuse-ld’, som förenklar inrättandet av miljön för korskompilering;

  • Inbäddade applikationer
    • Implementerade ett CHCP-verktyg för att konfigurera konsolkodning;
    • MSIDB-verktyget för att manipulera databaser i MSI-format har implementerats;
  • Optimera prestanda
    • Olika timingfunktioner har migrerats för att använda högpresterande systemtimerfunktioner, vilket minskar omkostnader i renderingsslingan för många spel;
    • Lade till möjligheten att använda Ext4 i FS regimen arbeta utan skiftlägeskänslighet;
    • Prestandan för att behandla ett stort antal element i listvisningsdialoger som arbetar i LBS_NODATA-läge har optimerats;
    • Lade till en snabbare implementering av SRW-lås (Slim Reader/Writer) för Linux, översatt till Futex;
  • Externa beroenden
    • För att montera moduler i PE-format används korskompilatorn MinGW-w64;
    • Implementering av XAudio2 kräver FAudio-biblioteket;
    • För att spåra filändringar på BSD-system
      Inotify-biblioteket används;

    • För att hantera undantag på ARM64-plattformen krävs Unwind-biblioteket;
    • Istället för Video4Linux1 krävs nu Video4Linux2-biblioteket.

Källa: opennet.ru

Lägg en kommentar