Lëshimi i qëndrueshëm i Wine 5.0

Pas një viti zhvillimi dhe 28 versionesh eksperimentale prezantuar lëshim i qëndrueshëm i zbatimit të hapur të API-së Win32 - Verë 5.0, i cili përfshinte më shumë se 7400 ndryshime. Arritjet kryesore të versionit të ri përfshijnë shpërndarjen e moduleve të integruara Wine në formatin PE, mbështetje për konfigurimet me shumë monitor, një implementim të ri të API audio XAudio2 dhe mbështetje për API grafike Vulkan 1.1.

Në verë konfirmuar funksionimi i plotë i 4869 (një vit më parë 4737) programe për Windows, 4136 të tjera (një vit më parë 4045) programe funksionojnë në mënyrë të përsosur me cilësime shtesë dhe DLL të jashtme. 3635 programe kanë probleme të vogla të performancës që nuk ndërhyjnë në përdorimin e funksioneve bazë të aplikacionit.

Celës risitë Vera 5.0:

  • Modulet në formatin PE
    • Me përpiluesin MinGW, shumica e moduleve Wine janë ndërtuar tani në formatin e skedarit të ekzekutueshëm PE (Portable Executable, i përdorur në Windows) në vend të ELF. Përdorimi i PE zgjidh problemet me mbështetjen e skemave të ndryshme të mbrojtjes nga kopjimi që verifikojnë identitetin e moduleve të sistemit në disk dhe në memorie;
    • Ekzekutuesit PE tani kopjohen në direktorinë ~/.wine ($WINEPREFIX) në vend që të përdorin skedarë dummy DLL, duke i bërë gjërat më të ngjashme me instalimet reale të Windows, me koston e konsumimit të hapësirës shtesë në disk;
    • Modulet e konvertuara në formatin PE mund të përdorin standarde wchar C funksione dhe konstante me Unicode (për shembull, L"abc");
    • Wine C runtime ka shtuar mbështetje për lidhjen me binare të ndërtuara në MinGW, e cila përdoret si parazgjedhje në vend të kohës së ekzekutimit MinGW kur ndërtohet DLL;
  • Nënsistemi grafik
    • Mbështetje e shtuar për të punuar me monitorë të shumtë dhe përshtatës grafikë, duke përfshirë aftësinë për të ndryshuar në mënyrë dinamike cilësimet;
    • Drejtuesi për API grafike Vulkan është përditësuar në përputhje me specifikimin Vulkan 1.1.126;
    • Biblioteka WindowsCodecs ofron mundësinë për të konvertuar formate shtesë raster, duke përfshirë formatet me një gamë të indeksuar;
  • Direct3D
    • Kur ekzekutoni aplikacione Direct3D me ekran të plotë, thirrja e mbrojtësit të ekranit bllokohet;
    • DXGI (DirectX Graphics Infrastructure) ka shtuar mbështetje për informimin e një aplikacioni kur dritarja e tij minimizohet, gjë që i lejon aplikacionit të reduktojë performancën e operacioneve me burime intensive kur minimizon dritaren;
    • Për aplikacionet që përdorin DXGI, tani është e mundur të kaloni midis modalitetit të ekranit të plotë dhe modalitetit me dritare duke përdorur kombinimin Alt+Enter;
    • Aftësitë e zbatimit të Direct3D 12 janë zgjeruar, për shembull, tani ka mbështetje për kalimin midis modaliteteve të ekranit të plotë dhe me dritare, ndryshimit të modaliteteve të ekranit, shkallëzimit të prodhimit dhe menaxhimit të intervalit të zëvendësimit të tamponit të interpretimit (intervali i shkëmbimit);
    • Trajtimi i përmirësuar i situatave të ndryshme kufitare, si përdorimi i vlerave hyrëse jashtë rrezes për testet e transparencës dhe thellësisë, pasqyrimi me teksturat dhe buferët e reflektuar dhe përdorimi i objekteve të pasakta DirectDraw prerës, duke krijuar pajisje Direct3 për dritare të pasakta, duke përdorur zona të dukshme, vlerat minimale të parametrave të të cilave janë të barabarta me maksimumin, etj.
    • Direct3D 8 dhe 9 ofrojnë gjurmim më të saktë "pis» zonat e teksturave të ngarkuara;
    • Madhësia e hapësirës së kërkuar të adresave kur ngarkohen teksturat 3D të ngjeshura duke përdorur metodën S3TC është zvogëluar (në vend që të ngarkohen tërësisht, teksturat ngarkohen në copa).
    • Ndërfaqja e implementuar ID3D11 Shumëfijesh për të mbrojtur seksionet kritike në aplikacionet me shumë fije;
    • Përmirësime dhe rregullime të ndryshme në lidhje me llogaritjet e ndriçimit janë bërë për aplikacionet më të vjetra DirectDraw;
    • Zbatoi thirrje shtesë për të marrë informacion rreth shaderëve në API Reflektimi Shader;
    • wined3d tani mbështet blitter E bazuar në CPU për përpunimin e burimeve të kompresuara;
    • Baza e të dhënave e kartave grafike të njohura në Direct3D është zgjeruar;
    • U shtuan çelësat e rinj të regjistrit HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend për të punuar me shader: "glsl" për GLSL, "arb" për kulmin/fragmentin ARB dhe "asnjë" për të çaktivizuar mbështetjen e shader), "strict_shader_math" ( 0x1 - aktivizoni, 0x0 - çaktivizoni konvertimin e shaderit Direct3D). Tasti "UseGLSL" i vjetëruar (duhet të përdorë "shader_backend");
  • D3DX
    • Mbështetja për mekanizmin e kompresimit të teksturës 3D S3TC (S3 Texture Compression) është zbatuar;
    • U shtuan zbatime korrekte të operacioneve si mbushja e teksturës dhe sipërfaqet e pahartëzuara;
    • Përmirësime dhe rregullime të ndryshme janë bërë në kornizën e krijimit efektet vizuale;
  • Kernel (ndërfaqet e kernelit të Windows)
    • Shumica e funksioneve të përdorura në Kernel32 janë zhvendosur në
      KernelBase, pas ndryshimeve në arkitekturën e Windows;

    • Aftësia për të përzier DLL 32- dhe 64-bit në drejtoritë e përdorura për ngarkim. Siguron që bibliotekat që nuk përputhen me thellësinë aktuale të bitit të shpërfillen (32/64), në rast se më tej përgjatë rrugës është e mundur të gjesh një bibliotekë që është e saktë për thellësinë aktuale të bitit;
    • Për drejtuesit e pajisjes, emulimi i objekteve të kernelit është përmirësuar;
    • Objektet e implementuara të sinkronizimit që punojnë në nivel kernel, të tilla si spin locks, mutexes të shpejtë dhe variabla të bashkangjitur në një burim;
    • Siguron që aplikacionet të jenë të informuara saktë për statusin e baterisë;
  • Ndërfaqja e përdoruesit dhe Integrimi i Desktopit
    • Dritaret e minimizuara tani shfaqen duke përdorur një shirit titulli dhe jo një ikonë të stilit të Windows 3.1;
    • U shtuan stile të reja të butonave SplitButton (buton me listën rënëse të veprimeve) dhe Lidhjet e komandës (lidhjet në kutitë e dialogut përdoren për të kaluar në fazën tjetër);
    • Lidhjet simbolike janë krijuar për dosjet 'Shkarkime' dhe 'Templates', duke treguar drejtoritë përkatëse në sistemet Unix;
  • Pajisjet hyrëse
    • Në nisje, instalohen dhe ngarkohen drejtuesit e nevojshëm të pajisjes Plug & Play;
    • Mbështetje e përmirësuar për kontrollorët e lojës, duke përfshirë një mini-levë (çelësin e kapelës), timonin, pedalet e gazit dhe frenave.
    • Mbështetja për API-në e vjetër të levës së Linux-it të përdorur në kernelet e Linux-it përpara versionit 2.2 është ndërprerë;
  • . NET
    • Motori Mono është përditësuar për të lëshuar 4.9.4 dhe tani përfshin pjesë të kornizës së Windows Presentation Foundation (WPF);
    • U shtua aftësia për të instaluar shtesa me Mono dhe Gecko në një direktori të përbashkët, duke vendosur skedarë në hierarkinë /usr/share/wine në vend që t'i kopjoni në parashtesa të reja;
  • Karakteristikat e rrjetit
    • Motori i shfletuesit Wine Gecko, i cili përdoret në bibliotekën MSHTML, është përditësuar për të lëshuar 2.47.1. Mbështetja për API-të e reja HTML është zbatuar;
    • MSHTML tani mbështet elementet SVG;
    • U shtuan shumë funksione të reja VBScript (për shembull, përpunuesit e gabimeve dhe përjashtimeve, funksionet Ora, Dita, Muaji, String, LBound, RegExp.Replace, РScriptTypeInfo_* dhe ScriptTypeComp_Bind*, etj.);
    • Sigurimi i ruajtjes së gjendjes së kodit në VBScript dhe JScript (qëndrueshmëria e skriptit);
    • U shtua një implementim fillestar i shërbimit HTTP (WinHTTP) dhe API-së shoqëruese (HTTPAPI) për aplikacionet e klientit dhe serverit që dërgojnë dhe marrin kërkesa duke përdorur protokollin HTTP;
    • Zbatoi aftësinë për të marrë cilësimet e proxy HTTP përmes DHCP;
    • Mbështetje e shtuar për ridrejtimin e kërkesave të vërtetimit përmes shërbimit Microsoft Passport;
  • Kriptografia
    • Mbështetje e implementuar për çelësat kriptografikë të kurbës eliptike (ECC) kur përdoret GnuTLS;
    • U shtua aftësia për të importuar çelësa dhe certifikata nga skedarët në formatin PFX;
    • Mbështetje e shtuar për skemën e gjenerimit të çelësave bazuar në fjalëkalimin PBKDF2;
  • Teksti dhe fontet
    • Zbatimi i DirectWrite API ka shtuar mbështetje për veçoritë OpenType që lidhen me pozicionimi i glyph, të cilat janë aktivizuar si parazgjedhje për stilin latin, duke përfshirë kerning;
    • Siguria e përmirësuar për përpunimin e të dhënave të shkronjave duke kontrolluar korrektësinë e tabelave të ndryshme të të dhënave përpara përdorimit të tyre;
    • Ndërfaqet DirectWrite janë sjellë në përputhje me SDK-në më të fundit;
  • Tingulli dhe video
    • Është propozuar një zbatim i ri i API-së së shëndoshë XAudio2, e ndërtuar mbi bazën e projektit FAudio. Përdorimi i FAudio në Wine ju lejon të arrini cilësi më të lartë të zërit në lojëra dhe të përdorni veçori të tilla si përzierja e volumit dhe efektet e avancuara të zërit;
    • Një numër i madh thirrjesh të reja i janë shtuar zbatimit të kornizës së Media Foundation, duke përfshirë mbështetjen për radhët asinkrone të integruara dhe të personalizuara, API Reader Source, Media Session, etj.
    • Filtri i kapjes së videos është kaluar në përdorimin e API-së v4l2 në vend të API-së v4l1, e cila ka zgjeruar gamën e kamerave të mbështetura;
    • Dekoderat e integruar AVI, MPEG-I dhe WAVE janë hequr, në vend të të cilëve tani përdoret sistemi GStreamer ose QuickTime;
    • U shtua një nëngrup i API-ve të konfigurimit VMR7;
    • Mbështetje e shtuar për rregullimin e volumit të kanaleve individuale tek drejtuesit e zërit;
  • Ndërkombëtarizimi
    • Tabelat Unicode të përditësuara në versionin 12.1.0;
    • Mbështetje e zbatuar për normalizimin e Unicode;
    • Ofrohet instalim automatik i rajonit gjeografik (HKEY_CURRENT_USER\Control Panel\International\Geo) bazuar në vendndodhjen aktuale;
  • RPC/COM
    • Mbështetje e shtuar për strukturat dhe grupet komplekse në typelib;
    • U shtua zbatimi fillestar i bibliotekës së ekzekutimit të Windows Script;
    • U shtua zbatimi fillestar i bibliotekës ADO (Microsoft ActiveX Data Objects);
  • Instaluesit
    • Mbështetja për dërgimin e arnimeve (Patch Files) është zbatuar për instaluesin MSI;
    • Programi WUSA (Windows Update Standalone Installer) tani ka mundësinë të instalojë përditësime në formatin .MSU;
  • Platforma ARM
    • Për arkitekturën ARM64, mbështetja për shthurjen e stackit është shtuar në ntdll. Mbështetje e shtuar për lidhjen e bibliotekave të jashtme libunwind;
    • Për arkitekturën ARM64, mbështetja për proxies pa probleme është zbatuar për ndërfaqet e objekteve;
  • Mjetet e Zhvillimit / Winelib
    • U shtua aftësia për të përdorur korrigjuesin nga Visual Studio për të korrigjuar në distancë aplikacionet që funksionojnë në Wine;
    • Biblioteka DBGENG (Debug Engine) është implementuar pjesërisht;
    • Binarët e përpiluar për Windows nuk varen më nga libwine, duke i lejuar ata të funksionojnë në Windows pa varësi shtesë;
    • U shtua opsioni '--sysroot' te Resource Compiler dhe IDL Compiler për të përcaktuar shtegun për skedarët e kokës;
    • U shtuan opsionet '—target', '—wine-objdir' te winegcc
      '—winebuild' dhe '-fuse-ld', të cilat thjeshtojnë vendosjen e mjedisit për përpilim të kryqëzuar;

  • Aplikimi i plotë
    • Zbatuar një mjet CHCP për të konfiguruar kodimin e konsolës;
    • Është implementuar mjeti MSIDB për manipulimin e bazave të të dhënave në formatin MSI;
  • Optimizimi i performancës
    • Funksione të ndryshme kohore janë migruar për të përdorur funksionet e kohëmatësit të sistemit me performancë të lartë, duke reduktuar shpenzimet në ciklin e rindërtimit të shumë lojërave;
    • U shtua aftësia për të përdorur Ext4 në FS regjimi punë pa ndjeshmëri ndaj rastit;
    • Performanca e përpunimit të një numri të madh elementësh në dialogët e shfaqjes së listës që funksionojnë në modalitetin LBS_NODATA është optimizuar;
    • U shtua një implementim më i shpejtë i bravave SRW (Slim Reader/Writer) për Linux, i përkthyer në Futex;
  • Varësitë e jashtme
    • Për të mbledhur module në formatin PE, përdoret ndër-përpiluesi MinGW-w64;
    • Zbatimi i XAudio2 kërkon bibliotekën FAudio;
    • Për të gjurmuar ndryshimet e skedarëve në sistemet BSD
      përdoret biblioteka Inotify;

    • Për të trajtuar përjashtimet në platformën ARM64, kërkohet biblioteka Unwind;
    • Në vend të Video4Linux1, tani kërkohet biblioteka Video4Linux2.

Burimi: opennet.ru

Shto një koment