21. januára 2020 bol oficiálne vydaný stabilný variant — voľný nástroj na spúšťanie nativných Windows programov v prostredí UNIX. Je to alternatívna, voľná implementácia Windows API. Rekurzívna skratka WINE znamená "Wine Is Not an Emulator".
Za touto verziou je zhruba jeden rok vývoja a viac ako 7400 jednotlivých zmien. Vedúci vývojár Alexandre Julliard vyzdvihuje štyri:
- Podpora modulov vo formáte PE. To rieši problémy s rôznymi schémami ochrany pred kopírovaním, ktoré porovnávajú systémové moduly na disku a v pamäti.
- Podpora viacerých monitorov a viacerých GPU, vrátane dynamickej zmeny nastavení.
- Reimplementácia XAudio2 na základe projektu FAudio, otvorenej implementácie zvukových knižníc DirectX. Prechod na FAudio umožňuje dosiahnuť vyššiu kvalitu zvuku v hrách, aktivovať zmiešavanie hlasitosti, rozšírené zvukové efekty a pod.
- Podpora Vulkan 1.1.
Podrobnejšie o kľúčových novinkách.
Moduly PE
Pri prítomnosti kompilátora MinGW väčšina modulov Wine teraz zostavuje vo formáte spustiteľných súborov PE (Portable Executable, binárny formát Windows) namiesto ELF.
Spustiteľné súbory PE sa teraz kopírujú do adresára ~/.wine namiesto použitia fiktívnych DLL súborov, čo robí aplikácie viac podobnými skutočným inštaláciám Windows.
Zatiaľ neboli všetky moduly konvertované do formátu PE. Práca pokračuje.
Grafický subsystém
Ako už bolo povedané, bola pridaná podpora pre prácu s viacerými monitorami a grafickými adaptérmi.
Ovládač Vulkan bol aktualizovaný na špecifikácie Vulkan 1.1.126.
Okrem toho knižnica WindowsCodecs teraz podporuje ďalšie rastrové formáty, vrátane formátov s indexovanou paletou.
Direct3D
Celoplošné aplikácie Direct3D teraz blokujú volanie screensaveru.
Pre aplikácie DXGI bola implementovaná možnosť prechodu medzi celoplošným a oknomovým režimom pomocou štandardnej kombinácie Alt+Enter.
Rozšírené možnosti Direct3D 12: podpora prechodu medzi celoplošným a oknomovým režimom, zmeny režimov obrazovky, zobrazenie so škálovaním a intervaly výmeny vykresľovacích búferov (swap interval). Všetky tieto funkcie už boli implementované pre predchádzajúce verzie Direct3D API.
Účastníci projektu dôkladne pracovali a odstránili doslova stovky chýb, takže sa zlepšila spracovanie Wine rôznych hraničných situácií. Medzi nimi je vzorkovanie 2D zdrojov v 3D vzorkovačoch a naopak, použitie hodnôt vychádzajúcich za prijateľné rozsahy pre testy transparentnosti a hĺbky, vykresľovanie s reflektovanými textúrami a bufframi, využívanie nesprávnych kliprov (objekt DirectDraw) a mnoho ďalšieho.
Znížená veľkosť potrebného adresného priestoru pri načítaní 3D textúr komprimovaných metódou S3TC (namiesto úplného načítania sa textúry načítajú po častiach).
Pre staré aplikácie DirectDraw boli implementované rôzne vylepšenia a opravy týkajúce sa výpočtu osvetlenia.
Rozšírená databáza grafických kariet, ktoré sú rozpoznávané v Direct3D.
Sieť a kryptografia
Engin Gecko bol aktualizovaný na verziu 2.47.1 na podporu moderných nástrojov. Implementovaný bol rad nových HTML API.
V MSHTML bola implementovaná podpora SVG prvkov.
Pridané množstvo nových funkcií VBScript (napríklad spracovatelia chýb a výnimiek).
Bola implementovaná možnosť získania parametrov nastavenia HTTP proxy cez DHCP.
V kryptografickej časti bola implementovaná podpora kryptografických kľúčov na základe eliptických kriviek (ECC) cez GnuTLS, pridaná možnosť importu kľúčov a certifikátov zo súborov vo formáte PFX, pridaná podpora schémy formovania kľúča na báze hesla PBKDF2.
Adobe Photoshop CS6 pod Wine
Ďalšie významné novinky
- Podpora spinlockov jadra NT.
- Vďaka vypršaniu patentu na kompresiu textúr DXTn a S3 bolo možné zahrnúť ich do defoltných implementácií.
- Podpora inštalácie ovládačov plug-and-play.
- Rôzne vylepšenia DirectWrite.
- Vylepšená podpora Windows Media Foundation API.
- Lepšia synchronizácia primitívov vďaka implementácii na futexoch.
- Spoločné používanie Wine-Mono na úsporu miesta namiesto open-source implementácie .NET pre každý projekt.
~/.wine. - Podpora Unicode 12.0 a 12.1.
- Implementácia počiatočného HTTP servisu (HTTP.sys) ako náhrada za Winsock API a IIS, čím sa dosiahla vyššia výkonosť ako pri Windows Sockets API.
- Lepšia kompatibilita s ladíčmi Windows.
- Lepšia podpora LLVM MinGW a vylepšenia krížovej kompilácie WineGCC.
Môžeme tiež spomenúť vylepšenia používateľského rozhrania. Napríklad zbalené okná sa teraz zobrazujú pomocou riadku s názvom, nie ikonami v štýle Windows 3.1. Zlepšená podpora herných ovládačov, vrátane hat switch, volantu a pedálov.
Z Wine boli odstránené zabudované dekodéry AVI, MPEG-I a WAVE, namiesto nich sa teraz používajú systémové GStreamer alebo QuickTime.
Pridala sa možnosť aplikovať ladenie z Visual Studio na vzdialené ladenie aplikácií spustených v Wine, čiastočne bola implementovaná knižnica DBGENG (Debug Engine), zo súborov zostavovaných pre Windows bola odstránená závislosť od libwine.
Pre optimalizáciu výkonu boli rôzne funkcie práce s časom prevedené na použitie vysoko výkonných systémových funkcií s časovačom, čo umožnilo znížiť režijné náklady v cykle vykreslenia mnohých hier. Urobili sa aj ďalšie optimalizácie výkonu.
Úplný zoznam zmien pozri. .
,
Na stránke sa vedie databáza Windows aplikácií kompatibilných s Wine. Tu sú lídri podľa :
- Final Fantasy XI
- Adobe Photoshop CS6 (13.0)
- World of Warcraft 8.3.0
- EVE Online Current
- Magic: The Gathering Online 4.x
Môžeme predpokladať, že tieto aplikácie sa v Wine spúšťajú najčastejšie.
Poznámka. Uvoľnenie Wine 5.0 je venované pamiatke Józefa Kuciu, ktorý tragicky zahynul v auguste 2019 vo veku 30 rokov pri skúmaní jaskyne na juhu Poľska. Józef bol dôležitým účastníkom vývoja Direct3D Wine, ako aj hlavným autorom projektu. Počas svojej práce na Wine prispel viac ako 2500 záplatami.

Zdroj: habr.com
