Wine 5.0:n vakaa julkaisu

Vuoden kehitystyön ja 28 kokeellisen version jälkeen esitetty vakaa julkaisu Win32 API:n avoimesta toteutuksesta - Viini 5.0, joka sisälsi yli 7400 2 muutosta. Uuden version tärkeimpiä saavutuksia ovat sisäänrakennettujen Wine-moduulien toimittaminen PE-muodossa, tuki usean näytön kokoonpanoille, uusi XAudio1.1-audio-API:n toteutus ja tuki Vulkan XNUMX -grafiikkasovellusliittymälle.

Viinissä vahvistettu 4869 (vuosi sitten 4737) Windows-ohjelman täysi toiminta, toiset 4136 (vuosi sitten 4045) ohjelmaa toimivat täydellisesti lisäasetusten ja ulkoisten DLL-tiedostojen kanssa. 3635 XNUMX ohjelmassa on pieniä suorituskykyongelmia, jotka eivät häiritse sovelluksen perustoimintojen käyttöä.

Avain innovaatioita Viini 5.0:

  • Moduulit PE-muodossa
    • MinGW-kääntäjällä useimmat Wine-moduulit on nyt rakennettu PE (Portable Executable, käytetään Windowsissa) suoritettavassa tiedostomuodossa ELF:n sijaan. PE:n käyttö ratkaisee ongelmia tukemalla erilaisia ​​kopiosuojausjärjestelmiä, jotka varmistavat järjestelmämoduulien identiteetin levyllä ja muistissa;
    • PE-suoritettavat tiedostot kopioidaan nyt ~/.wine ($WINEPREFIX) -hakemistoon vale-DLL-tiedostojen käyttämisen sijaan, mikä tekee niistä samankaltaisempia kuin oikeita Windows-asennuksia lisälevytilaa kuluttaen;
    • PE-muotoon muunnetut moduulit voivat käyttää standardia wchar C-funktiot ja vakiot Unicodella (esimerkiksi L"abc");
    • Wine C runtime on lisännyt tuen linkittämiselle MinGW:hen rakennettuihin binääriin, joita käytetään oletuksena MinGW-ajonajan sijaan DLL-tiedostoja rakennettaessa;
  • Grafiikka alijärjestelmä
    • Lisätty tuki useiden näyttöjen ja grafiikkasovittimien kanssa työskentelemiseen, mukaan lukien mahdollisuus muuttaa asetuksia dynaamisesti;
    • Vulkan-grafiikkasovellusliittymän ohjain on päivitetty vastaamaan Vulkan 1.1.126 -spesifikaatiota;
    • WindowsCodecs-kirjasto tarjoaa mahdollisuuden muuntaa muita rasterimuotoja, mukaan lukien muodot, joissa on indeksoitu paletti;
  • Direct3D
    • Kun suoritat koko näytön Direct3D-sovelluksia, näytönsäästäjäpuhelu estetään;
    • DXGI (DirectX Graphics Infrastructure) on lisännyt tuen sovellukselle ilmoittamiseen, kun sen ikkuna on pienennetty, minkä ansiosta sovellus voi vähentää resurssiintensiivisten toimintojen suorituskykyä ikkunaa pienennettäessä;
    • DXGI:tä käyttävissä sovelluksissa on nyt mahdollista vaihtaa koko näytön ja ikkunatilan välillä käyttämällä Alt+Enter-yhdistelmää;
    • Direct3D 12 -toteutuksen ominaisuuksia on laajennettu, esimerkiksi nyt on tuki koko näytön ja ikkunatilan välillä, näyttötilojen vaihtaminen, lähdön skaalaus ja renderöintipuskurin vaihtovälin (swap interval) hallinta;
    • Paranneltu erilaisten rajatilanteiden käsittelyä, kuten alueen ulkopuolisten syöttöarvojen käyttö läpinäkyvyys- ja syvyystesteissä, renderöinti heijastuvilla tekstuureilla ja puskureilla sekä väärien DirectDraw-objektien käyttö leikkuri, luoda Direct3-laitteita väärille ikkunoille, käyttämällä näkyviä alueita, joiden minimiparametriarvot ovat yhtä suuria kuin maksimi jne.
    • Direct3D 8 ja 9 tarjoavat tarkemman seurannan "likainen» ladattujen tekstuurien alueet;
    • Tarvittavan osoitetilan kokoa ladattaessa S3TC-menetelmällä pakattuja 3D-kuvioita on pienennetty (kokonaan lataamisen sijaan tekstuurit ladataan paloina).
    • Käyttöliittymä toteutettu ID3D11Multithread kriittisten osien suojaamiseen monisäikeisissä sovelluksissa;
    • Vanhemmille DirectDraw-sovelluksille on tehty erilaisia ​​valaistuslaskelmiin liittyviä parannuksia ja korjauksia;
    • Otettiin käyttöön lisäkutsuja saadakseen tietoa API:n Shadereista ShaderReflection;
    • wined3d tukee nyt kiiltävä CPU-pohjainen pakattujen resurssien käsittelyyn;
    • Direct3D:ssä tunnistettujen näytönohjainten tietokanta on laajentunut;
    • Lisätty uudet rekisteriavaimet HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (shader_backend) Shadereiden kanssa työskentelyyn: "glsl" GLSL:lle, "arb" ARB-vertexille/fragmentille ja "none" shader-tuen poistamiseksi käytöstä), "strict_shader_math" ( 0x1 - ota käyttöön, 0x0 - poista Direct3D-varjostimen muunnos käytöstä). Käytöstä poistettu "UseGLSL"-avain (pitäisi käyttää "shader_backend");
  • D3DX
    • Tuki 3D-tekstuuripakkausmekanismille S3TC (S3 Texture Compression) on otettu käyttöön;
    • Lisätty oikeat toimintojen toteutukset, kuten tekstuurin täyttö ja kartoittamattomat pinnat;
    • Luomiskehykseen on tehty erilaisia ​​parannuksia ja korjauksia erikoistehosteet;
  • Ydin (Windowsin ydinliittymät)
    • Suurin osa Kernel32:ssa käytetyistä toiminnoista on siirretty
      KernelBase Windows-arkkitehtuurin muutosten jälkeen;

    • Mahdollisuus sekoittaa 32- ja 64-bittisiä DLL-tiedostoja lataamiseen käytetyissä hakemistoissa. Varmistaa, että kirjastot, jotka eivät vastaa nykyistä bittisyvyyttä, ohitetaan (32/64), mikäli polulla kauempana on mahdollista löytää nykyiselle bittisyvyydelle oikea kirjasto;
    • Laiteajureissa ytimen objektien emulointia on parannettu;
    • Toteutetut ytimen tasolla toimivat synkronointiobjektit, kuten spin lockit, nopeat mutexet ja resurssiin liitetyt muuttujat;
    • Varmistaa, että sovellukset saavat oikein tiedon akun tilasta;
  • Käyttöliittymän ja työpöydän integrointi
    • Pienennetyt ikkunat näytetään nyt käyttämällä otsikkopalkkia Windows 3.1 -tyylikuvakkeen sijaan;
    • Lisätty uusia painiketyylejä SplitButton (painike, jossa on avattava toimintoluettelo) ja Komentolinkit (linkkejä valintaikkunoissa käytetään siirtymiseen seuraavaan vaiheeseen);
    • Lataukset- ja Mallit-kansioille on luotu symboliset linkit, jotka osoittavat vastaaviin Unix-järjestelmien hakemistoihin.
  • Syöttölaitteet
    • Käynnistyksen yhteydessä tarvittavat Plug & Play -laiteohjaimet asennetaan ja ladataan.
    • Parannettu tuki peliohjaimille, mukaan lukien minijoystick (hattukytkin), ohjauspyörä, kaasu- ja jarrupolkimet.
    • Vanhan Linux-joystick API:n tuki, jota käytettiin Linux-ytimissä ennen versiota 2.2, on lopetettu.
  • . NET
    • Mono-moottori on päivitetty versioon 4.9.4, ja se sisältää nyt osia Windows Presentation Foundation (WPF) -kehyksestä;
    • Lisätty mahdollisuus asentaa lisäosia Monon ja Geckon kanssa yhteen yhteiseen hakemistoon sijoittamalla tiedostot /usr/share/wine-hierarkiaan sen sijaan, että ne olisi kopioitu uusiin etuliitteisiin;
  • Verkkoominaisuudet
    • MSHTML-kirjastossa käytettävä Wine Gecko -selainmoottori on päivitetty versioon 2.47.1. Uusien HTML-sovellusliittymien tuki on otettu käyttöön;
    • MSHTML tukee nyt SVG-elementtejä;
    • Lisätty monia uusia VBScript-toimintoja (esimerkiksi virhe- ja poikkeuskäsittelijät, tunti-, päivä-, kuukausi-, merkkijono-, LBound-, RegExp.Replace-, РScriptTypeInfo_*- ja ScriptTypeComp_Bind*-funktiot jne.);
    • Edellyttäen koodin tilan säilyttämistä VBScriptissä ja JScriptissä (scriptin pysyvyys);
    • Lisätty HTTP-palvelun (WinHTTP) ja siihen liittyvän API (HTTPAPI) ensimmäinen toteutus asiakas- ja palvelinsovelluksille, jotka lähettävät ja vastaanottavat pyyntöjä HTTP-protokollaa käyttäen.
    • Otettu käyttöön mahdollisuus saada HTTP-välityspalvelinasetukset DHCP:n kautta;
    • Lisätty tuki todennuspyyntöjen uudelleenohjaamiseen Microsoft Passport -palvelun kautta;
  • kryptografia
    • Toteutettu tuki elliptisen käyrän salausavaimille (ECC) GnuTLS:ää käytettäessä;
    • Lisätty mahdollisuus tuoda avaimia ja varmenteita tiedostoista PFX-muodossa;
    • Lisätty tuki avainten luontimallille, joka perustuu PBKDF2-salasanaan;
  • Teksti ja fontit
    • DirectWrite API -toteutus on lisännyt tuen OpenType-ominaisuuksille, jotka liittyvät kuvioiden paikannus, jotka ovat oletusarvoisesti käytössä latinalaisessa tyylissä, mukaan lukien kerning;
    • Parempi suojaus fonttitietojen käsittelyssä tarkistamalla eri tietotaulukoiden oikeellisuus ennen niiden käyttöä;
    • DirectWrite-liitännät on saatettu viimeisimmän SDK:n mukaisiksi;
  • Ääni ja video
    • Sound API:lle on ehdotettu uutta toteutusta XAudio2, rakennettu hankkeen pohjalta FAudio. FAudio in Wine avulla voit saavuttaa korkeamman äänenlaadun peleissä ja käyttää ominaisuuksia, kuten äänenvoimakkuuden miksausta ja edistyneitä äänitehosteita;
    • Media Foundation -kehyksen käyttöönottoon on lisätty suuri määrä uusia puheluita, mukaan lukien tuki sisäänrakennetuille ja mukautetuille asynkronisille jonoille, Source Reader API:lle, Media Sessionille jne.
    • Videon sieppaussuodatin on vaihdettu käyttämään v4l2 API:ta v4l1 API:n sijaan, mikä on laajentanut tuettujen kameroiden valikoimaa.
    • Sisäänrakennetut AVI-, MPEG-I- ja WAVE-dekooderit on poistettu, joiden sijaan käytetään nyt GStreamer- tai QuickTime-järjestelmää;
    • Lisätty osajoukko VMR7-määrityssovellusliittymiä;
    • Lisätty tuki yksittäisten kanavien äänenvoimakkuuden säätämiseen ääniohjaimiin;
  • Kansainvälistyminen
    • Unicode-taulukot päivitetty versioon 12.1.0;
    • Toteutettu tuki Unicode-normalisoinnille;
    • Mukana maantieteellisen alueen (HKEY_CURRENT_USER\Control Panel\International\Geo) automaattinen asennus nykyisen kielen perusteella;
  • RPC/COM
    • Lisätty tuki monimutkaisille rakenteille ja taulukoille typelibiin;
    • Lisätty Windows Script runtime -kirjaston käyttöönotto;
    • Lisätty ADO (Microsoft ActiveX Data Objects) -kirjaston käyttöönotto;
  • Asentajat
    • Tuki korjaustiedostojen toimitukselle (Patch Files) on otettu käyttöön MSI-asennusohjelmassa;
    • WUSA (Windows Update Standalone Installer) -apuohjelmalla on nyt mahdollisuus asentaa päivityksiä .MSU-muodossa.
  • ARM-alusta
    • ARM64-arkkitehtuurissa pinon purkamisen tuki on lisätty ntdll-tiedostoon. Lisätty tuki ulkoisten libunwind-kirjastojen yhdistämiseen;
    • ARM64-arkkitehtuurissa tuki saumattomille välityspalvelimille on toteutettu objektirajapinnoille;
  • Kehitystyökalut / Winelib
    • Lisätty mahdollisuus käyttää Visual Studion debuggeria Winessä toimivien sovellusten etäkorjaukseen;
    • DBGENG (Debug Engine) -kirjasto on osittain toteutettu;
    • Windowsille käännetyt binaarit eivät enää ole riippuvaisia ​​libwinestä, joten ne voivat toimia Windowsissa ilman lisäriippuvuuksia.
    • Lisätty '--sysroot' vaihtoehto Resource Compileriin ja IDL Compileriin otsikkotiedostojen polun määrittämiseksi.
    • Lisätty vaihtoehdot "-target", "-wine-objdir", "-wine-objdir" viinigcc:hen
      "—winebuild" ja "-fuse-ld", jotka yksinkertaistavat ristiinkääntämisympäristön luomista;

  • Sulautetut sovellukset
    • Otettiin käyttöön CHCP-apuohjelma konsolin koodauksen määrittämiseksi;
    • MSIDB-apuohjelma tietokantojen käsittelyyn MSI-muodossa on otettu käyttöön;
  • Suorituskyvyn optimointi
    • Useita ajoitustoimintoja on siirretty käyttämään korkean suorituskyvyn järjestelmän ajastintoimintoja, mikä vähentää monien pelien renderöintisilmukan ylimääräistä rasitusta.
    • Lisätty mahdollisuus käyttää Ext4:ää FS:ssä järjestelmä työskennellä ilman kirjainkokoa;
    • Useiden elementtien käsittelyn suorituskyky LBS_NODATA-tilassa toimivissa luettelonäyttöikkunoissa on optimoitu;
    • Lisätty nopeampi SRW-lukkojen käyttöönotto (Slim Reader/Writer) Linuxille, käännetty Futexiksi;
  • Ulkoiset riippuvuudet
    • Moduulien kokoamiseen PE-muodossa käytetään MinGW-w64-ristikääntäjää;
    • XAudio2:n toteuttaminen vaatii FAudio-kirjaston;
    • Tiedostojen muutosten seuranta BSD-järjestelmissä
      Inotify-kirjastoa käytetään;

    • Poikkeusten käsittelemiseksi ARM64-alustalla tarvitaan Unwind-kirjasto;
    • Video4Linux1:n sijaan tarvitaan nyt Video4Linux2-kirjasto.

Lähde: opennet.ru

Lisää kommentti