Stabiele release van Wine 5.0

Na een jaar van ontwikkeling en 28 experimentele versies ingediend stabiele release van de open implementatie van de Win32 API - Wijn 5.0, die meer dan 7400 wijzigingen omvatte. De belangrijkste prestaties van de nieuwe versie zijn onder meer de levering van ingebouwde Wine-modules in PE-formaat, ondersteuning voor configuraties met meerdere monitoren, een nieuwe implementatie van de XAudio2-audio-API en ondersteuning voor de Vulkan 1.1 grafische API.

Bij Wijn bevestigd volledige werking van 4869 (een jaar geleden 4737) programma's voor Windows, nog eens 4136 (een jaar geleden 4045) programma's werken perfect met aanvullende instellingen en externe DLL's. 3635 programma's hebben kleine prestatieproblemen die het gebruik van de basisapplicatiefuncties niet belemmeren.

Toets innovaties Wijn 5.0:

  • Modules in PE-formaat
    • Met de MinGW-compiler zijn de meeste Wine-modules nu gebouwd in het uitvoerbare bestandsformaat PE (Portable Executable, gebruikt op Windows) in plaats van ELF. Het gebruik van PE lost problemen op bij het ondersteunen van verschillende kopieerbeveiligingsschema's die de identiteit van systeemmodules op schijf en in het geheugen verifiëren;
    • PE-uitvoerbare bestanden worden nu gekopieerd naar de map ~/.wine ($WINEPREFIX) in plaats van dummy DLL-bestanden te gebruiken, waardoor het spul meer op echte Windows-installaties lijkt, ten koste van extra schijfruimte;
    • Modules die naar PE-formaat zijn geconverteerd, kunnen standaard gebruiken Wchar C-functies en constanten met Unicode (bijvoorbeeld L"abc");
    • Wine C-runtime heeft ondersteuning toegevoegd voor koppeling met binaire bestanden die in MinGW zijn ingebouwd, die standaard wordt gebruikt in plaats van MinGW-runtime bij het bouwen van DLL's;
  • Grafisch subsysteem
    • Ondersteuning toegevoegd voor het werken met meerdere monitoren en grafische adapters, inclusief de mogelijkheid om instellingen dynamisch te wijzigen;
    • Het stuurprogramma voor de Vulkan grafische API is bijgewerkt om te voldoen aan de Vulkan 1.1.126-specificatie;
    • De WindowsCodecs-bibliotheek biedt de mogelijkheid om extra rasterformaten te converteren, inclusief formaten met een geïndexeerd palet;
  • Direct3D
    • Bij het uitvoeren van Direct3D-toepassingen op volledig scherm wordt de oproep van de schermbeveiliging geblokkeerd;
    • DXGI (DirectX Graphics Infrastructure) heeft ondersteuning toegevoegd voor het informeren van een applicatie wanneer het venster wordt geminimaliseerd, waardoor de applicatie de prestaties van resource-intensieve bewerkingen kan verminderen bij het minimaliseren van het venster;
    • Voor toepassingen die DXGI gebruiken, is het nu mogelijk om te schakelen tussen volledig scherm en venstermodus met behulp van de combinatie Alt+Enter;
    • De mogelijkheden van de Direct3D 12-implementatie zijn uitgebreid, er is nu bijvoorbeeld ondersteuning voor het schakelen tussen volledig scherm en venstermodus, het wijzigen van schermmodi, het schalen van de uitvoer en het beheren van het vervangingsinterval van de renderingbuffer (swap-interval);
    • Verbeterde afhandeling van verschillende grenssituaties, zoals het gebruik van invoerwaarden die buiten het bereik vallen voor transparantie- en dieptetests, weergave met gereflecteerde texturen en buffers, en het gebruik van onjuiste DirectDraw-objecten klem, Direct3-apparaten maken voor onjuiste vensters, zichtbare gebieden gebruiken waarvan de minimale parameterwaarden gelijk zijn aan het maximum, enz.
    • Direct3D 8 en 9 zorgen voor nauwkeurigere tracking"vies» gebieden met geladen texturen;
    • De grootte van de vereiste adresruimte bij het laden van 3D-texturen die zijn gecomprimeerd met de S3TC-methode is verkleind (in plaats van volledig te laden, worden texturen in stukjes geladen).
    • Interface geïmplementeerd ID3D11Multithread om kritische secties in multi-threaded applicaties te beschermen;
    • Er zijn verschillende verbeteringen en reparaties met betrekking tot verlichtingsberekeningen gemaakt voor oudere DirectDraw-toepassingen;
    • Extra oproepen geïmplementeerd om informatie over shaders in de API te verkrijgen ShaderReflectie;
    • wined3d ondersteunt nu verblinding CPU-gebaseerd voor het verwerken van gecomprimeerde bronnen;
    • De database met grafische kaarten die in Direct3D worden herkend, is uitgebreid;
    • Nieuwe registersleutels HKEY_CURRENT_USER\Software\Wine\Direct3D toegevoegd: “shader_backend” (backend voor het werken met shaders: “glsl” voor GLSL, “arb” voor ARB vertex/fragment en “none” om shader-ondersteuning uit te schakelen), “strict_shader_math” ( 0x1 - inschakelen, 0x0 - Direct3D-shaderconversie uitschakelen). De sleutel "UseGLSL" is verouderd (moet "shader_backend" gebruiken);
  • D3DX
    • Ondersteuning voor het 3D-textuurcompressiemechanisme S3TC (S3 Texture Compression) is geïmplementeerd;
    • Correcte implementaties toegevoegd van bewerkingen zoals textuurvulling en niet-toewijsbare oppervlakken;
    • Er zijn verschillende verbeteringen en oplossingen aangebracht in het creatieframework visuele effecten;
  • Kernel (Windows-kernelinterfaces)
    • De meeste functies die in Kernel32 worden gebruikt, zijn verplaatst naar
      KernelBase, na veranderingen in de Windows-architectuur;

    • Mogelijkheid om 32- en 64-bits DLL's te combineren in mappen die worden gebruikt voor het laden. Zorgt ervoor dat bibliotheken die niet overeenkomen met de huidige bitdiepte worden genegeerd (32/64), voor het geval het verder op het pad mogelijk is om een ​​bibliotheek te vinden die correct is voor de huidige bitdiepte;
    • Voor apparaatstuurprogramma's is de emulatie van kernelobjecten verbeterd;
    • Geïmplementeerde synchronisatieobjecten die op kernelniveau werken, zoals spin locks, snelle mutexen en variabelen die aan een bron zijn gekoppeld;
    • Zorgt ervoor dat applicaties correct worden geïnformeerd over de batterijstatus;
  • Gebruikersinterface en desktopintegratie
    • Geminimaliseerde vensters worden nu weergegeven met een titelbalk in plaats van een pictogram in Windows 3.1-stijl;
    • Nieuwe knopstijlen toegevoegd Splitknop (knop met een vervolgkeuzelijst met acties) en Commandokoppelingen (links in dialoogvensters die worden gebruikt om naar de volgende fase te gaan);
    • Er zijn symbolische links gemaakt voor de mappen ‘Downloads’ en ‘Templates’, die verwijzen naar de overeenkomstige mappen op Unix-systemen;
  • Invoerapparaten
    • Bij het opstarten worden de benodigde Plug & Play-apparaatstuurprogramma's geïnstalleerd en geladen;
    • Verbeterde ondersteuning voor gamecontrollers, waaronder een mini-joystick (hat-switch), stuur, gas- en rempedalen.
    • Ondersteuning voor de oude Linux-joystick-API die in Linux-kernels werd gebruikt vóór versie 2.2 is stopgezet;
  • . NET
    • De Mono-engine is bijgewerkt naar versie 4.9.4 en bevat nu delen van het Windows Presentation Foundation (WPF)-framework;
    • De mogelijkheid toegevoegd om add-ons met Mono en Gecko in één gemeenschappelijke map te installeren, waarbij bestanden in de /usr/share/wine-hiërarchie worden geplaatst in plaats van ze naar nieuwe voorvoegsels te kopiëren;
  • Netwerkfuncties
    • De Wine Gecko-browserengine, die wordt gebruikt in de MSHTML-bibliotheek, is bijgewerkt naar release 2.47.1. Ondersteuning voor nieuwe HTML-API's is geïmplementeerd;
    • MSHTML ondersteunt nu SVG-elementen;
    • Veel nieuwe VBScript-functies toegevoegd (bijvoorbeeld fout- en uitzonderingshandlers, uren, dag, maand, tekenreeks, LBound, RegExp.Replace, РScriptTypeInfo_* en ScriptTypeComp_Bind*-functies, enz.);
    • Zorgde voor behoud van de codestatus in VBScript en JScript (scriptpersistentie);
    • Een initiële implementatie toegevoegd van de HTTP-service (WinHTTP) en de bijbehorende API (HTTPAPI) voor client- en servertoepassingen die verzoeken verzenden en ontvangen met behulp van het HTTP-protocol;
    • De mogelijkheid geïmplementeerd om HTTP-proxy-instellingen via DHCP te verkrijgen;
    • Ondersteuning toegevoegd voor het omleiden van authenticatieverzoeken via de Microsoft Passport-service;
  • Cryptografie
    • Ondersteuning geïmplementeerd voor cryptografische sleutels met elliptische curve (ECC) bij gebruik van GnuTLS;
    • De mogelijkheid toegevoegd om sleutels en certificaten te importeren uit bestanden in PFX-indeling;
    • Ondersteuning toegevoegd voor het sleutelgeneratieschema op basis van het PBKDF2-wachtwoord;
  • Tekst en lettertypen
    • De DirectWrite API-implementatie heeft ondersteuning toegevoegd voor OpenType-functies gerelateerd aan glyph-positionering, die standaard zijn ingeschakeld voor de Latijnse stijl, inclusief spatiëring;
    • Verbeterde beveiliging voor het verwerken van lettertypegegevens door de juistheid van verschillende gegevenstabellen te controleren voordat ze worden gebruikt;
    • DirectWrite-interfaces zijn in lijn gebracht met de nieuwste SDK;
  • Geluid en video
    • Er is een nieuwe implementatie van de geluids-API voorgesteld XAudio2, gebouwd op basis van het project FAudio. Door FAudio in Wine te gebruiken, kunt u een hogere geluidskwaliteit in games bereiken en functies gebruiken zoals volumemixing en geavanceerde geluidseffecten;
    • Er is een groot aantal nieuwe oproepen toegevoegd aan de implementatie van het Media Foundation-framework, waaronder ondersteuning voor ingebouwde en aangepaste asynchrone wachtrijen, Source Reader API, Media Session, enz.
    • Het video-opnamefilter is overgeschakeld naar het gebruik van de v4l2 API in plaats van de v4l1 API, waardoor het bereik van ondersteunde camera's is uitgebreid;
    • De ingebouwde AVI-, MPEG-I- en WAVE-decoders zijn verwijderd, in plaats daarvan wordt nu het systeem GStreamer of QuickTime gebruikt;
    • Een subset van VMR7-configuratie-API's toegevoegd;
    • Ondersteuning toegevoegd voor het aanpassen van het volume van individuele kanalen aan geluidsdrivers;
  • Internationalisering
    • Unicode-tabellen bijgewerkt naar versie 12.1.0;
    • Ondersteuning geïmplementeerd voor Unicode-normalisatie;
    • Biedt automatische installatie van de geografische regio (HKEY_CURRENT_USER\Control Panel\International\Geo) op basis van de huidige landinstelling;
  • RPC/COM
    • Ondersteuning toegevoegd voor complexe structuren en arrays aan typelib;
    • Initiële implementatie van Windows Script runtime-bibliotheek toegevoegd;
    • Initiële implementatie van de ADO-bibliotheek (Microsoft ActiveX Data Objects) toegevoegd;
  • Installateurs
    • Voor het MSI-installatieprogramma is ondersteuning voor het leveren van patches (Patch Files) geïmplementeerd;
    • Het WUSA-hulpprogramma (Windows Update Standalone Installer) heeft nu de mogelijkheid om updates in .MSU-indeling te installeren;
  • ARM-platform
    • Voor de ARM64-architectuur is ondersteuning voor het afwikkelen van stapels toegevoegd aan ntdll. Ondersteuning toegevoegd voor het verbinden van externe libunwind-bibliotheken;
    • Voor de ARM64-architectuur is ondersteuning voor naadloze proxy's geïmplementeerd voor objectinterfaces;
  • Ontwikkelingstools / Winelib
    • De mogelijkheid toegevoegd om de debugger van Visual Studio te gebruiken om op afstand fouten te debuggen in applicaties die in Wine draaien;
    • De DBGENG-bibliotheek (Debug Engine) is gedeeltelijk geïmplementeerd;
    • Binaire bestanden die voor Windows zijn gecompileerd, zijn niet langer afhankelijk van libwine, waardoor ze zonder extra afhankelijkheden op Windows kunnen worden uitgevoerd;
    • Optie '--sysroot' toegevoegd aan Resource Compiler en IDL Compiler om het pad voor headerbestanden te bepalen;
    • Opties ‘—target’, ‘—wine-objdir’, ‘—wine-objdir’ toegevoegd aan winegcc
      ‘—winebuild’ en ‘-fuse-ld’, die het opzetten van de omgeving voor kruiscompilatie vereenvoudigen;

  • Geïntegreerde toepassingen
    • Een CHCP-hulpprogramma geïmplementeerd om consolecodering te configureren;
    • Het MSIDB-hulpprogramma voor het manipuleren van databases in MSI-formaat is geïmplementeerd;
  • Optimalisatie van prestaties
    • Verschillende timingfuncties zijn gemigreerd om hoogwaardige systeemtimerfuncties te gebruiken, waardoor de overhead in de renderloop van veel games wordt verminderd;
    • De mogelijkheid toegevoegd om Ext4 in FS te gebruiken regime werken zonder hoofdlettergevoeligheid;
    • De prestaties bij het verwerken van een groot aantal elementen in dialoogvensters voor lijstweergave in de LBS_NODATA-modus zijn geoptimaliseerd;
    • Een snellere implementatie toegevoegd van SRW-vergrendelingen (Slim Reader/Writer) voor Linux, vertaald naar Futex;
  • Externe afhankelijkheden
    • Om modules in PE-formaat samen te stellen, wordt de MinGW-w64 cross-compiler gebruikt;
    • Voor het implementeren van XAudio2 is de FAudio-bibliotheek vereist;
    • Om bestandswijzigingen op BSD-systemen bij te houden
      de Inotify-bibliotheek wordt gebruikt;

    • Om uitzonderingen op het ARM64-platform af te handelen, is de Unwind-bibliotheek vereist;
    • In plaats van Video4Linux1 is nu de Video4Linux2-bibliotheek vereist.

Bron: opennet.ru

Voeg een reactie