Nakon godinu dana razvoja i 28 eksperimentalnih verzija predstavio stabilno izdanje otvorene implementacije Win32 API-ja - Vino 5.0, koji je uključivao više od 7400 izmjena. Ključna postignuća nove verzije uključuju isporuku ugrađenih Wine modula u PE formatu, podršku za konfiguracije s više monitora, novu implementaciju XAudio2 audio API-ja i podršku za Vulkan 1.1 grafički API.
U Vinu potvrdio puni rad 4869 (prije godinu dana 4737) programa za Windows, još 4136 (prije godinu dana 4045) programa radi savršeno s dodatnim postavkama i vanjskim DLL-ovima. 3635 programa ima manje probleme s performansama koji ne ometaju korištenje osnovnih funkcija aplikacije.
Uz MinGW kompajler, većina Wine modula sada je izgrađena u PE (Portable Executable, koristi se u Windows) formatu izvršne datoteke umjesto ELF. Korištenje PE-a rješava probleme s podrškom za različite sheme zaštite od kopiranja koje provjeravaju identitet modula sustava na disku iu memoriji;
PE izvršne datoteke sada se kopiraju u direktorij ~/.wine ($WINEPREFIX) umjesto korištenja lažnih DLL datoteka, čineći stvari sličnijima stvarnim Windows instalacijama, po cijenu trošenja dodatnog prostora na disku;
Moduli pretvoreni u PE format mogu koristiti standard wchar C funkcije i konstante s Unicodeom (na primjer, L"abc");
Wine C runtime je dodao podršku za povezivanje s binarnim datotekama ugrađenim u MinGW, koji se koristi prema zadanim postavkama umjesto MinGW runtimea prilikom izgradnje DLL-ova;
Grafički podsustav
Dodana podrška za rad s više monitora i grafičkih adaptera, uključujući mogućnost dinamičke promjene postavki;
Upravljački program za Vulkan grafički API je ažuriran kako bi bio u skladu sa specifikacijom Vulkan 1.1.126;
Biblioteka WindowsCodecs pruža mogućnost pretvaranja dodatnih rasterskih formata, uključujući formate s indeksiranom paletom;
Direct3D
Prilikom pokretanja Direct3D aplikacija preko cijelog zaslona, poziv čuvara zaslona je blokiran;
DXGI (DirectX Graphics Infrastructure) je dodao podršku za obavještavanje aplikacije kada je njezin prozor minimiziran, što aplikaciji omogućuje smanjenje performansi operacija koje zahtijevaju velike resurse prilikom minimiziranja prozora;
Za aplikacije koje koriste DXGI, sada je moguće prebacivati između cijelog zaslona i načina rada s prozorima pomoću kombinacije Alt+Enter;
Mogućnosti implementacije Direct3D 12 su proširene, na primjer, sada postoji podrška za prebacivanje između načina rada preko cijelog zaslona i načina rada s prozorima, mijenjanje načina rada zaslona, skaliranje izlaza i upravljanje intervalom zamjene međuspremnika za renderiranje (interval zamjene);
Poboljšano rukovanje raznim graničnim situacijama, kao što je upotreba ulaznih vrijednosti izvan raspona za testove prozirnosti i dubine, renderiranje s reflektiranim teksturama i međuspremnicima i upotreba netočnih DirectDraw objekata kliper, stvaranje Direct3 uređaja za netočne prozore, korištenje vidljivih područja čije su minimalne vrijednosti parametara jednake maksimumu itd.
Direct3D 8 i 9 pružaju točnije praćenje "prljavi» područja učitanih tekstura;
Smanjena je veličina potrebnog adresnog prostora pri učitavanju 3D tekstura komprimiranih metodom S3TC (umjesto učitavanja u cijelosti, teksture se učitavaju u komadima).
Implementirano sučelje ID3D11Višenit za zaštitu kritičnih odjeljaka u aplikacijama s više niti;
Za starije DirectDraw aplikacije napravljena su različita poboljšanja i popravci koji se odnose na izračune osvjetljenja;
Implementirani dodatni pozivi za dobivanje informacija o shaderima u API-ju ShaderReflection;
wined3d sada podržava blitter Temeljen na procesoru za obradu komprimiranih resursa;
Baza podataka grafičkih kartica prepoznatih u Direct3D je proširena;
Dodani su novi ključevi registra HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (pozadina za rad s shaderima: “glsl” za GLSL, “arb” za ARB vertex/fragment i “none” za onemogućavanje podrške shadera), “strict_shader_math” ( 0x1 - omogući, 0x0 - onemogući pretvorbu Direct3D shadera). Zastario ključ "UseGLSL" (trebao bi koristiti "shader_backend");
D3DX
Implementirana je podrška za mehanizam kompresije 3D teksture S3TC (S3 Texture Compression);
Dodane ispravne implementacije operacija kao što su punjenje teksturom i nepreslikane površine;
Napravljena su različita poboljšanja i popravci okvira za izradu vizualni efekti;
Kernel (Windows kernel sučelja)
Većina funkcija korištenih u Kernelu32 premještena je u
KernelBase, nakon promjena u Windows arhitekturi;
Mogućnost miješanja 32- i 64-bitnih DLL-ova u direktorijima koji se koriste za učitavanje. Osigurava da se biblioteke koje ne odgovaraju trenutnoj dubini bita zanemaruju (32/64), u slučaju da je dalje duž staze moguće pronaći biblioteku koja je ispravna za trenutnu dubinu bita;
Za upravljačke programe uređaja poboljšana je emulacija objekata jezgre;
Implementirani sinkronizacijski objekti koji rade na razini jezgre, kao što su spin zaključavanja, brzi muteksi i varijable pripojene resursu;
Osigurava da su aplikacije ispravno informirane o statusu baterije;
Korisničko sučelje i integracija radne površine
Minimizirani prozori sada se prikazuju pomoću naslovne trake umjesto ikone stila Windows 3.1;
Dodani novi stilovi gumba SplitButton (gumb s padajućim popisom radnji) i Zapovjedne veze (linkovi u dijaloškim okvirima koji se koriste za prelazak na sljedeću fazu);
Stvorene su simboličke veze za mape 'Preuzimanja' i 'Predlošci', koje upućuju na odgovarajuće direktorije na Unix sustavima;
Uređaji za unos
Prilikom pokretanja instalirani su i učitani potrebni Plug & Play upravljački programi uređaja;
Poboljšana podrška za kontrolere igara, uključujući mini-joystick (prekidač šešira), upravljač, papučice gasa i kočnice.
Podrška za stari Linux joystick API koji se koristio u Linux kernelima prije verzije 2.2 je prekinuta;
NET.
Motor Mono je ažuriran na izdanje 4.9.4 i sada uključuje dijelove okvira Windows Presentation Foundation (WPF);
Dodana je mogućnost instaliranja dodataka s Mono i Gecko u jednom zajedničkom direktoriju, smještajući datoteke u hijerarhiju /usr/share/wine umjesto da ih kopirate u nove prefikse;
Značajke umrežavanja
Wine Gecko preglednik, koji se koristi u MSHTML biblioteci, ažuriran je na izdanje 2.47.1. Implementirana je podrška za nove HTML API-je;
MSHTML sada podržava SVG elemente;
Dodano mnogo novih VBScript funkcija (na primjer, rukovatelji pogreškama i iznimkama, funkcije Sat, Dan, Mjesec, String, LBound, RegExp.Replace, RScriptTypeInfo_* i ScriptTypeComp_Bind* itd.);
Omogućeno očuvanje stanja koda u VBScriptu i JScriptu (postojanost skripte);
Dodana početna implementacija HTTP usluge (WinHTTP) i povezanog API-ja (HTTPAPI) za klijentske i poslužiteljske aplikacije koje šalju i primaju zahtjeve pomoću HTTP protokola;
Implementirana mogućnost dobivanja HTTP proxy postavki putem DHCP-a;
Dodana podrška za preusmjeravanje zahtjeva za autentifikaciju putem usluge Microsoft Passport;
Kriptografija
Implementirana podrška za kriptografske ključeve eliptične krivulje (ECC) kada se koristi GnuTLS;
Dodana mogućnost uvoza ključeva i certifikata iz datoteka u PFX formatu;
Dodana podrška za shemu generiranja ključeva na temelju PBKDF2 lozinke;
Tekst i fontovi
Implementacija API-ja DirectWrite dodala je podršku za značajke OpenType koje se odnose na pozicioniranje glifa, koji su prema zadanim postavkama omogućeni za latinski stil, uključujući kerning;
Poboljšana sigurnost za obradu podataka fontova provjerom ispravnosti različitih podatkovnih tablica prije njihove uporabe;
DirectWrite sučelja usklađena su s najnovijim SDK-om;
Zvuk i video
Predložena je nova implementacija zvučnog API-ja XAudio2, izgrađen na temelju projekta FAudio. Korištenje FAudija u Wineu omogućuje postizanje veće kvalitete zvuka u igrama i korištenje značajki kao što su miješanje glasnoće i napredni zvučni efekti;
Velik broj novih poziva dodan je implementaciji okvira Media Foundation, uključujući podršku za ugrađene i prilagođene asinkrone redove čekanja, Source Reader API, Media Session, itd.
Filtar za video snimanje prebačen je na korištenje v4l2 API-ja umjesto v4l1 API-ja, što je proširilo raspon podržanih kamera;
Ugrađeni AVI, MPEG-I i WAVE dekoderi su uklonjeni, umjesto kojih se sada koristi sustav GStreamer ili QuickTime;
Dodan podskup VMR7 konfiguracijskih API-ja;
Dodana podrška za podešavanje glasnoće pojedinačnih kanala zvučnim drajverima;
Internacionalizacija
Unicode tablice ažurirane na verziju 12.1.0;
Implementirana podrška za Unicode normalizaciju;
Omogućena automatska instalacija geografske regije (HKEY_CURRENT_USER\Control Panel\International\Geo) na temelju trenutne lokalne postavke;
RPC/COM
Dodana podrška za složene strukture i nizove u typelib;
Dodana početna implementacija Windows Script runtime knjižnice;
Dodana početna implementacija biblioteke ADO (Microsoft ActiveX Data Objects);
Instalateri
Implementirana je podrška za isporuku zakrpa (Patch Files) za MSI instalater;
WUSA (Windows Update Standalone Installer) uslužni program sada ima mogućnost instaliranja ažuriranja u .MSU formatu;
ARM platforma
Za arhitekturu ARM64, podrška za odmotavanje stoga dodana je u ntdll. Dodana podrška za povezivanje vanjskih libunwind biblioteka;
Za arhitekturu ARM64 implementirana je podrška za besprijekorne proxyje za objektna sučelja;
Razvojni alati / Winelib
Dodana je mogućnost korištenja alata za ispravljanje pogrešaka iz Visual Studija za daljinsko ispravljanje pogrešaka u aplikacijama koje se izvode u Wineu;
Djelomično je implementirana biblioteka DBGENG (Debug Engine);
Binarne datoteke kompajlirane za Windows više ne ovise o libwineu, što im omogućuje izvođenje na Windowsima bez dodatnih ovisnosti;
Dodana opcija '--sysroot' Resource Compiler-u i IDL Compiler-u za određivanje staze za datoteke zaglavlja;
Dodane opcije '—target', '—wine-objdir', '—wine-objdir' u winegcc
‘—winebuild’ i ‘-fuse-ld’, koji pojednostavljuju postavljanje okruženja za unakrsnu kompilaciju;
Ugrađene aplikacije
Implementiran CHCP uslužni program za konfiguriranje kodiranja konzole;
Implementiran je uslužni program MSIDB za manipuliranje bazama podataka u MSI formatu;
Optimiziranje performansi
Različite vremenske funkcije migrirane su za korištenje sistemskih vremenskih funkcija visokih performansi, smanjujući opterećenje u petlji renderiranja mnogih igara;
Dodana mogućnost korištenja Ext4 u FS-u režim rad bez osjetljivosti na velika i mala slova;
Izvedba obrade velikog broja elemenata u dijalozima prikaza popisa koji rade u LBS_NODATA modu je optimizirana;
Dodana brža implementacija SRW zaključavanja (Slim Reader/Writer) za Linux, prevedena na Futex;
Vanjske ovisnosti
Za sastavljanje modula u PE formatu koristi se unakrsni kompajler MinGW-w64;