Stabilné vydanie Wine 5.0

Po roku vývoja a 28 experimentálnych verziách predložené stabilné vydanie otvorenej implementácie Win32 API - Víno 5.0, ktorá zahŕňala viac ako 7400 2 zmien. Medzi kľúčové úspechy novej verzie patrí dodávka vstavaných modulov Wine vo formáte PE, podpora konfigurácií viacerých monitorov, nová implementácia audio API XAudio1.1 a podpora grafického API Vulkan XNUMX.

Vo víne potvrdené plná prevádzka 4869 (pred rokom 4737) programov pre Windows, ďalších 4136 (pred rokom 4045) programov funguje perfektne s dodatočnými nastaveniami a externými DLL. 3635 XNUMX programov má menšie problémy s výkonom, ktoré nezasahujú do používania základných funkcií aplikácie.

Kľúč inovácie Víno 5.0:

  • Moduly vo formáte PE
    • S kompilátorom MinGW je teraz väčšina modulov Wine postavená vo formáte spustiteľného súboru PE (Portable Executable, používaný v systéme Windows) namiesto ELF. Použitie PE rieši problémy s podporou rôznych schém ochrany proti kopírovaniu, ktoré overujú identitu systémových modulov na disku a v pamäti;
    • PE spustiteľné súbory sa teraz skopírujú do adresára ~/.wine ($WINEPREFIX) namiesto použitia fiktívnych súborov DLL, čím sa veci viac podobajú skutočným inštaláciám Windows, za cenu spotreby dodatočného miesta na disku;
    • Moduly konvertované do formátu PE môžu používať štandard wchar C funkcie a konštanty s Unicode (napríklad L"abc");
    • Runtime Wine C pridalo podporu pre prepojenie s binárnymi súbormi zabudovanými v MinGW, ktoré sa štandardne používa namiesto MinGW runtime pri vytváraní DLL;
  • Grafický subsystém
    • Pridaná podpora pre prácu s viacerými monitormi a grafickými adaptérmi vrátane možnosti dynamicky meniť nastavenia;
    • Ovládač pre grafické rozhranie API Vulkan bol aktualizovaný tak, aby vyhovoval špecifikácii Vulkan 1.1.126;
    • Knižnica WindowsCodecs poskytuje možnosť konvertovať ďalšie rastrové formáty vrátane formátov s indexovanou paletou;
  • Direct3D
    • Pri spustení aplikácií Direct3D na celú obrazovku je volanie šetriča obrazovky zablokované;
    • DXGI (DirectX Graphics Infrastructure) pridala podporu pre informovanie aplikácie, keď je jej okno minimalizované, čo umožňuje aplikácii znížiť výkon operácií náročných na zdroje pri minimalizácii okna;
    • Pre aplikácie využívajúce DXGI je teraz možné prepínať medzi režimom celej obrazovky a oknami pomocou kombinácie Alt+Enter;
    • Možnosti implementácie Direct3D 12 boli rozšírené, napríklad teraz existuje podpora pre prepínanie medzi režimom celej obrazovky a oknami, zmena režimov obrazovky, škálovanie výstupu a správa intervalu výmeny vyrovnávacej pamäte vykresľovania (interval výmeny);
    • Vylepšené spracovanie rôznych hraničných situácií, ako napríklad používanie vstupných hodnôt mimo rozsahu pre testy transparentnosti a hĺbky, vykresľovanie s odrazenými textúrami a vyrovnávacími pamäťami a používanie nesprávnych objektov DirectDraw lietadlo, vytváranie zariadení Direct3 pre nesprávne okná, používanie viditeľných oblastí, ktorých minimálne hodnoty parametrov sa rovnajú maximu atď.
    • Direct3D 8 a 9 poskytujú presnejšie sledovanie "špinavý» oblasti načítaných textúr;
    • Veľkosť požadovaného adresného priestoru pri načítaní 3D textúr komprimovaných metódou S3TC bola znížená (namiesto úplného načítania sa textúry načítavajú po častiach).
    • Rozhranie implementované ID3D11Viacvláknové na ochranu kritických častí vo viacvláknových aplikáciách;
    • Pre staršie aplikácie DirectDraw boli vykonané rôzne vylepšenia a opravy týkajúce sa výpočtov osvetlenia;
    • Implementované dodatočné volania na získanie informácií o shaderoch v API ShaderReflection;
    • wined3d teraz podporuje blitter CPU na spracovanie komprimovaných zdrojov;
    • Databáza grafických kariet rozpoznaných v Direct3D bola rozšírená;
    • Pridané nové kľúče registra HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (backend pre prácu s shadermi: “glsl” pre GLSL, “arb” pre ARB vertex/fragment a “none” na zakázanie podpory shaderov), “strict_shader_math” ( 0x1 - povoliť, 0x0 - vypnúť konverziu Direct3D shaderov). Zastaraný kľúč "UseGLSL" (malo by sa používať "shader_backend");
  • D3DX
    • Bola implementovaná podpora pre mechanizmus kompresie 3D textúr S3TC (S3 Texture Compression);
    • Pridané správne implementácie operácií, ako je vyplnenie textúry a nemapovateľné povrchy;
    • V rámci vytvárania boli vykonané rôzne vylepšenia a opravy vizuálne efekty;
  • Kernel (rozhrania jadra systému Windows)
    • Väčšina funkcií používaných v Kernel32 bola presunutá do
      KernelBase, po zmenách v architektúre Windows;

    • Schopnosť kombinovať 32- a 64-bitové knižnice DLL v adresároch používaných na načítanie. Zabezpečuje, že knižnice, ktoré nezodpovedajú aktuálnej bitovej hĺbke, budú ignorované (32/64), v prípade, že ďalej po ceste je možné nájsť knižnicu, ktorá je správna pre aktuálnu bitovú hĺbku;
    • Pre ovládače zariadení bola vylepšená emulácia objektov jadra;
    • Implementované synchronizačné objekty pracujúce na úrovni jadra, ako sú spinové zámky, rýchle mutexy a premenné pripojené k prostriedku;
    • Zabezpečuje, aby boli aplikácie správne informované o stave batérie;
  • Používateľské rozhranie a integrácia pracovnej plochy
    • Minimalizované okná sa teraz zobrazujú pomocou záhlavia namiesto ikony v štýle Windows 3.1;
    • Pridané nové štýly tlačidiel SplitButton (tlačidlo s rozbaľovacím zoznamom akcií) a Odkazy na príkazy (odkazy v dialógových oknách slúžiace na prechod do ďalšej fázy);
    • Pre priečinky „Downloads“ a „Templates“ boli vytvorené symbolické odkazy, ktoré ukazujú na zodpovedajúce adresáre v systémoch Unix;
  • Vstupné zariadenia
    • Pri spustení sa nainštalujú a načítajú potrebné ovládače zariadení Plug & Play;
    • Vylepšená podpora pre herné ovládače, vrátane mini-joysticku (klobúkového spínača), volantu, plynového a brzdového pedála.
    • Podpora starého linuxového joysticku API používaného v linuxových jadrách pred verziou 2.2 bola ukončená;
  • . NET
    • Mono engine bol aktualizovaný na vydanie 4.9.4 a teraz obsahuje časti rámca Windows Presentation Foundation (WPF);
    • Pridaná možnosť inštalovať doplnky s Mono a Gecko do jedného spoločného adresára, umiestňovať súbory do hierarchie /usr/share/wine namiesto ich kopírovania do nových prefixov;
  • Sieťové funkcie
    • Motor prehliadača Wine Gecko, ktorý sa používa v knižnici MSHTML, bol aktualizovaný na verziu 2.47.1. Bola implementovaná podpora pre nové HTML API;
    • MSHTML teraz podporuje prvky SVG;
    • Pridané mnohé nové funkcie VBScript (napríklad obslužné programy chýb a výnimiek, funkcie hodín, dní, mesiacov, reťazcov, LBound, RegExp.Replace, РScriptTypeInfo_* a ScriptTypeComp_Bind* atď.);
    • Poskytnuté zachovanie stavu kódu vo VBScript a JScript (perzistencia skriptu);
    • Pridaná počiatočná implementácia služby HTTP (WinHTTP) a súvisiaceho rozhrania API (HTTPAPI) pre klientske a serverové aplikácie, ktoré odosielajú a prijímajú požiadavky pomocou protokolu HTTP;
    • Implementovaná možnosť získať nastavenia HTTP proxy cez DHCP;
    • Pridaná podpora pre presmerovanie žiadostí o overenie prostredníctvom služby Microsoft Passport;
  • kryptografie
    • Implementovaná podpora pre kryptografické kľúče eliptických kriviek (ECC) pri používaní GnuTLS;
    • Pridaná možnosť importovať kľúče a certifikáty zo súborov vo formáte PFX;
    • Pridaná podpora pre schému generovania kľúčov na základe hesla PBKDF2;
  • Text a fonty
    • Implementácia rozhrania DirectWrite API pridala podporu pre súvisiace funkcie OpenType umiestnenie glyfov, ktoré sú štandardne povolené pre latinský štýl, vrátane kerningu;
    • Vylepšené zabezpečenie spracovania údajov o písme kontrolou správnosti rôznych údajových tabuliek pred ich použitím;
    • Rozhrania DirectWrite boli zosúladené s najnovšou súpravou SDK;
  • Zvuk a video
    • Bola navrhnutá nová implementácia zvukového API XAudio2, postavený na základe projektu FAudio. Používanie FAudio vo víne vám umožňuje dosiahnuť vyššiu kvalitu zvuku v hrách a využívať funkcie, ako je miešanie hlasitosti a pokročilé zvukové efekty;
    • Do implementácie rámca Media Foundation bolo pridané veľké množstvo nových volaní, vrátane podpory pre vstavané a vlastné asynchrónne fronty, Source Reader API, Media Session atď.
    • Filter na zachytávanie videa sa zmenil na používanie v4l2 API namiesto v4l1 API, čím sa rozšíril rozsah podporovaných kamier;
    • Boli odstránené vstavané dekodéry AVI, MPEG-I a WAVE, namiesto ktorých sa teraz používa systém GStreamer alebo QuickTime;
    • Pridaná podmnožina konfiguračných API VMR7;
    • Pridaná podpora pre nastavenie hlasitosti jednotlivých kanálov zvukovým ovládačom;
  • Internacionalizácia
    • Unicode tabuľky aktualizované na verziu 12.1.0;
    • Implementovaná podpora pre normalizáciu Unicode;
    • Poskytnutá automatická inštalácia geografického regiónu (HKEY_CURRENT_USER\Control Panel\International\Geo) na základe aktuálneho miestneho nastavenia;
  • RPC/COM
    • Pridaná podpora pre zložité štruktúry a polia do typelib;
    • Pridaná počiatočná implementácia runtime knižnice Windows Script;
    • Pridaná počiatočná implementácia knižnice ADO (Microsoft ActiveX Data Objects);
  • Inštalatéri
    • Pre inštalačný program MSI bola implementovaná podpora doručovania záplat (súbory záplat);
    • Pomôcka WUSA (Windows Update Standalone Installer) má teraz možnosť inštalovať aktualizácie vo formáte .MSU;
  • platforma ARM
    • Pre architektúru ARM64 bola do ntdll pridaná podpora odvíjania zásobníka. Pridaná podpora pre pripojenie externých knižníc libunwind;
    • Pre architektúru ARM64 bola implementovaná podpora pre bezproblémové proxy pre objektové rozhrania;
  • Vývojové nástroje / Winelib
    • Pridaná možnosť použiť debugger z Visual Studia na vzdialené ladenie aplikácií bežiacich vo Wine;
    • Knižnica DBGENG (Debug Engine) bola čiastočne implementovaná;
    • Binárne súbory skompilované pre Windows už nezávisia od libwine, čo im umožňuje bežať na Windowse bez ďalších závislostí;
    • Pridaná možnosť '--sysroot' do kompilátora zdrojov a kompilátora IDL na určenie cesty k hlavičkovým súborom;
    • Do winegcc boli pridané možnosti „—target“, „—wine-objir“, „—wine-objir“
      „—winebuild“ a „-fuse-ld“, ktoré zjednodušujú nastavenie prostredia pre krížovú kompiláciu;

  • Vstavané aplikácie
    • Implementovaný nástroj CHCP na konfiguráciu kódovania konzoly;
    • Bol implementovaný nástroj MSIDB na manipuláciu s databázami vo formáte MSI;
  • Optimalizácia výkonu
    • Rôzne funkcie časovania boli migrované tak, aby používali vysokovýkonné funkcie systémového časovača, čím sa znížila réžia v slučke vykresľovania mnohých hier;
    • Pridaná možnosť používať Ext4 vo FS režimu pracovať bez rozlišovania malých a veľkých písmen;
    • Výkon spracovania veľkého počtu prvkov v dialógových oknách zobrazenia zoznamu pracujúcich v režime LBS_NODATA bol optimalizovaný;
    • Pridaná rýchlejšia implementácia SRW zámkov (Slim Reader/Writer) pre Linux, preložená do Futexu;
  • Vonkajšie závislosti
    • Na zostavenie modulov vo formáte PE sa používa krížový kompilátor MinGW-w64;
    • Implementácia XAudio2 vyžaduje knižnicu FAudio;
    • Na sledovanie zmien súborov na systémoch BSD
      používa sa knižnica Inotify;

    • Na spracovanie výnimiek na platforme ARM64 je potrebná knižnica Unwind;
    • Namiesto Video4Linux1 je teraz potrebná knižnica Video4Linux2.

Zdroj: opennet.ru

Pridať komentár