Stabil utgivelse av Wine 5.0

Etter ett år med utvikling og 28 eksperimentelle versjoner ble presentert den stabile utgivelsen av den åpne implementeringen av Win32 API — Wine 5.0, som har inkludert over 7400 endringer. Blant de viktigste prestasjonene i den nye versjonen er leveransen av innebygde Wine-moduler i PE-format, støtte for flermonitor-konfigurasjoner, en ny implementering av lyd-API-en XAudio2, og støtte for grafikk-API-en Vulkan 1.1.

I Wine er bekreftet fungerer 4869 programmer for Windows helt (det var 4737 i fjor), og ytterligere 4136 (4045 i fjor) fungerer utmerket med ekstra innstillinger og eksterne DLL-er. 3635 programmer har små problemer, men det hindrer ikke bruken av hovedfunksjonene i applikasjonene.

Nøkkelfunksjoner nyheter Wine 5.0:

  • Moduler i PE-format
    • Med kompilatoren MinGW kan de fleste Wine-modulene nå bygges som kjørbare PE-filer (Portable Executable, brukt i Windows) i stedet for ELF. Bruken av PE løser problemer med støtte for ulike kopibeskyttelsessystemer som sjekker identiteten til systemmoduler på disk og i minnet;
    • PE-kjørbare filer kopieres nå til katalogen ~/.wine ($WINEPREFIX) i stedet for å bruke falske DLL-filer, noe som gjør strukturen mer lik ekte Windows-installasjoner, til prisen av økt diskområde;
    • Moduler som er konvertert til PE-format kan bruke standard wchar C-funksjoner og konstanter med Unicode (for eksempel L"abc");
    • Wine C-kjøretid har fått støtte for linking med binærfiler bygget i MinGW, som ved bygging av DLL brukes som standard i stedet for MinGW-kjøretid;
  • Grafikkundersystem
    • Støtte for arbeid med flere skjermer og grafikkadaptere er blitt lagt til, inkludert muligheten for dynamisk endring av innstillinger;
    • Grafikk-API Vulkan-driveren har blitt oppdatert for å være i samsvar med spesifikasjonen Vulkan 1.1.126;
    • I WindowsCodecs-biblioteket er det implementert muligheter for å konvertere flere ekstra rasterformat, inkludert formater med indekserte paletter;
  • Direct3D
    • Ved kjøring av fullskjermapplikasjoner i Direct3D er skjermbeskytteren blitt blokkert;
    • I DXGI (DirectX Graphics Infrastructure) er det lagt til støtte for å informere applikasjonen om minimisering av vinduet, som lar applikasjonen redusere ressursbruken ved å minimere vinduet;
    • For applications using DXGI, the ability to switch between fullscreen and windowed mode with the Alt+Enter combination has been implemented.
    • The capabilities of Direct3D 12 have been expanded, for example, support has been added for switching between fullscreen and windowed mode, changing screen modes, output with scaling, and managing the swap interval of render buffers.
    • Improved handling of various edge cases, such as applying out-of-range source values for transparency and depth tests, rendering with reflected textures and buffers, and using incorrect DirectDraw objects. clipper, creating Direct3 devices for incorrect windows, using visible areas with minimum parameter values equaling maximum values, etc.
    • In Direct3D 8 and 9, more accurate tracking of "dirty" areas of loaded textures is provided.
    • The required address space for loading 3D textures compressed using S3TC has been reduced (instead of loading fully, textures are loaded in chunks).
    • An interface has been implemented ID3D11Multithread for protecting critical sections in multithreaded applications.
    • Various improvements and fixes related to lighting calculations have been made for older DirectDraw applications.
    • Additional calls for obtaining information about shaders in the API have been implemented ShaderReflection;
    • Support has been added in wined3d for blitter based on CPU for processing compressed resources.
    • The database of graphics cards recognized in Direct3D has been expanded.
    • New registry keys have been added to HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend for working with shaders: "glsl" for GLSL, "arb" for ARB vertex/fragment, and "none" to disable shader support), "strict_shader_math" (0x1 — enable, 0x0 — disable Direct3D shader conversion). The key "UseGLSL" has been deprecated (use "shader_backend").
  • D3DX
    • Support for the S3TC (S3 Texture Compression) 3D texture compression mechanism has been implemented.
    • Correct implementations of operations such as texture filling and unmappable surfaces have been added.
    • Various improvements and fixes have been made to the framework for creating visual effects.;
  • Kjerne (Windows-kjernegrensesnitt)
    • Most functions used in Kernel32 have been moved to
      KernelBase, following changes in Windows architecture.
    • Mulighet for å blande 32- og 64-bit DLL-er i katalogene som brukes for lasting. Ignorerer bibliotek som ikke samsvarer med gjeldende bitdybde (32/64), i tilfelle det finnes et korrekt bibliotek for gjeldende bitdybde lengre i stien;
    • For enhetsdrivere er kjerneobjekt-emuleringen forbedret;
    • Implementert kjerne-nivå synkroniseringsobjekter, som spinlocks, raske mutexer og ressursbundne variabler;
    • Sikret korrekt varsling til applikasjoner om batteristatus;
  • Brukergrensesnitt og integrasjon med skrivebordet
    • Minimerte vinduer vises nå med en tittel, ikke et ikon i Windows 3.1-stil;
    • Nye knappestiler lagt til SplitButton (knapp med nedtrekksliste med handlinger) og Command Links (lenker i dialogbokser som brukes for å gå til neste trinn);
    • For mappene 'Nedlastinger' og 'Mal' er det opprettet symbolske lenker som peker til de tilsvarende katalogene i Unix-systemer;
  • Inndataenheter
    • Ved oppstart sikres installing og lasting av nødvendige Plug & Play-enhetsdrivere;
    • Støtten for spillkontrollere er forbedret, inkludert mini-styrekontroll (hat switch), ratt, gass og brems pedaler.
    • Støtten for det gamle Linux API-et for interaksjon med kontrollerne, brukt i Linux-kjerner før versjon 2.2, er opphørt;
  • .NET
    • Mono-motoren er oppdatert til utgave 4.9.4 og inkluderer nå deler av Windows Presentation Foundation (WPF)-rammeverket;
    • Mulighet for å installere tillegg med Mono og Gecko i en felles katalog med plassering av filer i hierarkiet /usr/share/wine i stedet for å kopiere til nye prefikser;
  • Nettverksmuligheter
    • Web-motoren Wine Gecko, som brukes i MSHTML-biblioteket, er oppdatert til utgave 2.47.1. Støtte for nye HTML API-er er implementert;
    • MSHTML har implementert støtte for SVG-elementer;
    • Mange nye VBScript-funksjoner lagt til (for eksempel feilhåndterere og unntak, funksjoner som Hour, Day, Month, String, LBound, RegExp.Replace, RScriptTypeInfo_* og ScriptTypeComp_Bind* osv.);
    • Ordre om å bevare tilstanden til koden i VBScript og JScript (script persistence);
    • Introduksjon av en grunnleggende implementering av HTTP-tjenester (WinHTTP) og tilhørende API (HTTPAPI) for klient- og serverapplikasjoner som sender og mottar forespørsel ved hjelp av HTTP-protokollen;
    • Implementert mulighet for å hente HTTP-proxy-konfigurasjonsparametere via DHCP;
    • Støtte for omdirigering av autentiseringsforespørsel via Microsoft Passport-tjenesten er lagt til;
  • Kryptografi
    • Implementert støtte for elliptiske kurvester (ECC) kryptografiske nøkler ved bruk av GnuTLS;
    • Mulighet for import av nøkler og sertifikater fra filer i PFX-format er lagt til;
    • Støtte for nøkkelgenereringsskjema basert på passord PBKDF2 er lagt til;
  • Tekst og skrifttyper
    • I implementeringen av DirectWrite API er støtte for OpenType-funksjoner knyttet til plassering av glyphs, som er aktivert som standard for Latin-skrifttype, inkludert kerning;
    • Sikkerheten ved behandling av skriftdatasett er forbedret ved å sjekke nøyaktigheten til ulike datatabeller før de brukes;
    • DirectWrite-grensesnitt er oppdatert i samsvar med den nyeste SDK-en;
  • Sound and Video
    • En ny implementering av lyd-API XAudio2, basert på prosjektet FAudio. Bruken av FAudio i Wine gjør det mulig å oppnå høyere lydkvalitet i spill og benytte seg av funksjoner som volumblanding og avanserte lydeffekter;
    • Et stort antall nye kall er lagt til i implementeringen av Media Foundation-rammeverket, inkludert støtte for innebygde og brukerdefinerte asynkrone køer, Source Reader API, Media Session osv.
    • Videoinnspillingsfilteret er overført til å bruke API v4l2 i stedet for v4l1 API, noe som har utvidet utvalget av støttede kameraer;
    • Innebygde dekodere for AVI, MPEG-I og WAVE er fjernet, og nå brukes systemets GStreamer eller QuickTime;
    • Et subset av konfigurasjons-API VMR7 er lagt til;
    • Lyddrivere har fått støtte for å justere volumet for individuelle kanaler;
  • Internasjonalisering
    • Unicode-tabeller er oppdatert til versjon 12.1.0;
    • Støtte for normalisering av Unicode er implementert;
    • Automatisk innstilling av geografisk region (HKEY_CURRENT_USER\Control Panel\International\Geo) basert på gjeldende lokalitet er sikret;
  • RPC/COM
    • Støtte for komplekse strukturer og arrays er lagt til i typelib;
    • En grunnleggende implementering av Windows Script runtime-biblioteket er lagt til;
    • En grunnleggende implementering av ADO-biblioteket (Microsoft ActiveX Data Objects) er lagt til;
  • Installerere
    • For MSI-installereren er støtte for levering av oppdateringer (Patch Files) implementert;
    • I verktøyet WUSA (Windows Update Standalone Installer) er muligheten for å installere oppdateringer i .MSU-format lagt til;
  • ARM-plattformen
    • For ARM64-arkitekturen er støtte for stack unwinding lagt til i ntdll. Støtte for tilkobling av eksterne biblioteker libunwind er lagt til;
    • For ARM64-arkitekturen er støtte for stubless proxies for objektgrensesnitt implementert;
  • Utviklingsverktøy / Winelib
    • Det er lagt til muligheten for å bruke debuggeren fra Visual Studio for fjernfeilsøking av applikasjoner som kjører i Wine;
    • Debug Engine-biblioteket er delvis implementert;
    • Kompilerte kjørbare filer for Windows avhenger ikke lenger av libwine, noe som gjør det mulig å kjøre dem i Windows uten ekstra avhengigheter;
    • Resource Compiler og IDL Compiler har fått alternativet ‘—sysroot’ for å spesifisere plasseringen av header-filer;
    • Winegcc har fått alternativene ‘—target’, ‘—wine-objdir’,
      ‘—winebuild’ og ‘-fuse-ld’, som forenkler konfigurasjonen av miljøet for krysskompilering;
  • Innebygde applikasjoner
    • CHCP-verktøyet for innstilling av konsollkoding er implementert;
    • MSIDB-verktøyet for manipulering med databaser i MSI-format er implementert;
  • Ytelsesoptimalisering
    • Ulike tidsrelaterte funksjoner har blitt oversatt til bruk av høyytelses systemfunksjoner for tidsur, noe som reduserer overhead i gjengivelsessykluser for mange spill;
    • Mulighet for å bruke i Ext4 FS modus for case insensitive arbeid;
    • Ytelsen til behandlingen av et stort antall elementer i dialoger som viser lister, som kjører i LBS_NODATA-modus, er optimalisert;
    • En raskere implementering av SRW-lås (Slim Reader/Writer) er lagt til for Linux, oversatt til Futex;
  • Eksterne avhengigheter
    • MinGW-w64 krysskompilatoren er brukt for å bygge moduler i PE-format;
    • Implementering av XAudio2 krever FAudio-biblioteket;
    • For å spore filendringer på BSD-systemer
      er Inotify-biblioteket brukt;
    • For å håndtere unntak på ARM64-plattformen er Unwind-biblioteket nødvendig;
    • Video4Linux2-biblioteket er nå nødvendig i stedet for Video4Linux1.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster