Stabila eldono de Wine 5.0

Post jaro da evoluo kaj 28 eksperimentaj versioj prezentita stabila liberigo de la malferma efektivigo de la Win32 API - Vino 5.0, kiu inkludis pli ol 7400 ŝanĝojn. La ĉefaj atingoj de la nova versio inkluzivas la liveron de enkonstruitaj Wine-moduloj en PE-formato, subteno por plurmonitoraj agordoj, nova efektivigo de la audio-API de XAudio2 kaj subteno por la grafika API de Vulkan 1.1.

En Vino konfirmis plena funkciado de 4869 (antaŭ jaro 4737) programoj por Vindozo, aliaj 4136 (antaŭ jaro 4045) programoj funkcias perfekte kun aldonaj agordoj kaj eksteraj DLL-oj. 3635 programoj havas negravajn rendimentajn problemojn, kiuj ne malhelpas la uzon de bazaj aplikaj funkcioj.

Ŝlosilo novigoj Vino 5.0:

  • Moduloj en PE-formato
    • Kun la MinGW-kompililo, la plej multaj Wine-moduloj nun estas konstruitaj en la plenumebla dosierformato PE (Portable Executable, uzata en Vindozo) anstataŭ ELF. La uzo de PE solvas problemojn kun subtenado de diversaj kopiprotektaj skemoj, kiuj kontrolas la identecon de sistemaj moduloj sur disko kaj en memoro;
    • PE ruleblaj estas nun kopiitaj al la ~/.wine ($WINEPREFIX) dosierujo anstataŭ uzi falsajn DLL-dosierojn, farante la aĵojn pli similaj al realaj Vindozaj instalaĵoj, je la kosto de konsumado de plia diskospaco;
    • Moduloj konvertitaj al PE-formato povas uzi normon wchar C-funkcioj kaj konstantoj kun Unikodo (ekzemple, L"abc");
    • Wine C rultempo aldonis subtenon por ligado kun binaroj konstruitaj en MinGW, kiu estas uzata defaŭlte anstataŭ MinGW rultempo dum konstruado de DLL-oj;
  • Subsistemo de grafikaĵoj
    • Aldonita subteno por labori kun pluraj ekranoj kaj grafikaj adaptiloj, inkluzive de la kapablo dinamike ŝanĝi agordojn;
    • La ŝoforo por la Vulkan-grafika API estis ĝisdatigita por plenumi la specifon Vulkan 1.1.126;
    • La biblioteko WindowsCodecs disponigas la kapablon konverti kromajn rastrumajn formatojn, inkluzive de formatoj kun indeksita paletro;
  • Rekta3D
    • Dum funkciado de plenekranaj Direct3D-aplikoj, la alvoko de ekranŝparalo estas blokita;
    • DXGI (DirectX Graphics Infrastructure) aldonis subtenon por informi aplikaĵon kiam ĝia fenestro estas minimumigita, kio permesas al la aplikaĵo redukti la agadon de rimedintensaj operacioj dum minimumigado de la fenestro;
    • Por aplikaĵoj uzantaj DXGI, nun eblas ŝanĝi inter plenekrana kaj fenestra reĝimo uzante la Alt+Enter kombinaĵon;
    • La kapabloj de la Direct3D 12 efektivigo estis vastigitaj, ekzemple, ekzistas nun subteno por ŝanĝado inter plenekranaj kaj fenestraj reĝimoj, ŝanĝado de ekranreĝimoj, skalado de produktaĵo kaj administrado de la bildiga bufro-anstataŭiga intervalo (interŝanĝa intervalo);
    • Plibonigita uzado de diversaj limaj situacioj, kiel la uzo de ekster-intervalaj enigvaloroj por travidebleco kaj profundtestoj, bildigo kun reflektitaj teksturoj kaj bufroj, kaj la uzo de malĝustaj DirectDraw-objektoj tondilo, kreante Direct3-aparatojn por malĝustaj fenestroj, uzante videblajn areojn, kies minimumaj parametraj valoroj estas egalaj al la maksimumo, ktp.
    • Direct3D 8 kaj 9 provizas pli precizan spuradon "malpura» areoj de ŝarĝitaj teksturoj;
    • La grandeco de la bezonata adresspaco dum ŝarĝo de 3D teksturoj kunpremitaj per la S3TC-metodo estis reduktita (anstataŭ tute ŝarĝi, teksturoj estas ŝarĝitaj en pecoj).
    • Interfaco efektivigita ID3D11Multifadeno protekti kritikajn sekciojn en multfadenaj aplikoj;
    • Diversaj plibonigoj kaj korektoj rilataj al lumkalkuloj estis faritaj por pli malnovaj DirectDraw-aplikoj;
    • Efektivigis pliajn alvokojn por akiri informojn pri ombriloj en la API ShaderReflection;
    • wined3d nun subtenas blitter CPU-bazita por prilaborado de kunpremitaj rimedoj;
    • La datumbazo de grafikaj kartoj rekonitaj en Direct3D estis vastigita;
    • Aldonitaj novaj registroŝlosiloj HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend por labori kun ombriloj: "glsl" por GLSL, "arb" por ARB vertico/fragmento kaj "neniu" por malŝalti ombrilsubtenon), "strict_shader_math" ( 0x1 - ebligi, 0x0 - malŝalti Direct3D-ombrilo-konverton). Malrekomendita la ŝlosilo "UseGLSL" (devus uzi "shader_backend");
  • D3DX
    • Subteno por la 3D tekstura kunprema mekanismo S3TC (S3 Texture Compression) estis efektivigita;
    • Aldonitaj ĝustaj efektivigoj de operacioj kiel tekstura plenigo kaj nemapeblaj surfacoj;
    • Diversaj plibonigoj kaj korektoj estis faritaj al la kreadkadro vidaj efikoj;
  • Kerno (Windows Kernel Interfacoj)
    • La plej multaj el la funkcioj uzataj en Kernel32 estis movitaj al
      KernelBase, sekvante ŝanĝojn en la Vindoza arkitekturo;

    • Kapablo miksi 32- kaj 64-bitajn DLL-ojn en dosierujoj uzataj por ŝarĝo. Certigas, ke bibliotekoj kiuj ne kongruas kun la nuna bitprofundo estas ignoritaj (32/64), en kazo pli laŭ la vojo eblas trovi bibliotekon kiu estas ĝusta por la nuna bitprofundo;
    • Por aparataj peliloj, emulado de kernaj objektoj estis plibonigita;
    • Efektivigitaj sinkronigaj objektoj laborantaj ĉe la kernnivelo, kiel spinaj seruroj, rapidaj muteksoj kaj variabloj alkroĉitaj al rimedo;
    • Certigas, ke aplikoj estas ĝuste informitaj pri la bateria stato;
  • Uzantinterfaco kaj Labortabla Integriĝo
    • Minimigitaj fenestroj nun estas montrataj uzante titolbreton prefere ol Windows 3.1 stilikono;
    • Aldonitaj novaj butonstiloj SplitButton (butono kun fallisto de agoj) kaj Komandaj Ligiloj (ligiloj en dialogkestoj uzataj por movi al la sekva etapo);
    • Simbolaj ligiloj estis kreitaj por la dosierujoj 'Elŝutoj' kaj 'Ŝablonoj', montrante al la respondaj dosierujoj en Unikso-sistemoj;
  • Enigaj aparatoj
    • Ĉe ekfunkciigo, la necesaj Plug & Play-aparataj ŝoforoj estas instalitaj kaj ŝarĝitaj;
    • Plibonigita subteno por ludregiloj, inkluzive de mini-stirstango (ĉapelŝaltilo), stirilo, benzinaj kaj bremspedaloj.
    • Subteno por la malnova Linuksa stirstango API uzita en Linuksaj kernoj antaŭ versio 2.2 estis nuligita;
  • NET
    • La Mono-motoro estis ĝisdatigita por liberigi 4.9.4 kaj nun inkluzivas partojn de la kadro Windows Presentation Foundation (WPF);
    • Aldonis la kapablon instali aldonaĵojn kun Mono kaj Gecko en unu komuna dosierujo, metante dosierojn en la /usr/share/wine-hierarkio anstataŭ kopii ilin al novaj prefiksoj;
  • Retaj ecoj
    • La retumilo Wine Gecko, kiu estas uzata en la MSHTML-biblioteko, estis ĝisdatigita por liberigi 2.47.1. Subteno por novaj HTML-APIoj estis efektivigita;
    • MSHTML nun subtenas SVG-elementojn;
    • Aldonitaj multaj novaj funkcioj de VBScript (ekzemple, pritraktiloj pri eraroj kaj esceptoj, funkcioj Hour, Day, Month, String, LBound, RegExp.Replace, РScriptTypeInfo_* kaj ScriptTypeComp_Bind* ktp.);
    • Provizita konservado de koda stato en VBScript kaj JScript (manuskripto-persisto);
    • Aldonis komencan efektivigon de la HTTP-servo (WinHTTP) kaj la rilata API (HTTPAPI) por klientaj kaj servilaj aplikaĵoj, kiuj sendas kaj ricevas petojn per la HTTP-protokolo;
    • Efektivigis la kapablon akiri HTTP-prokurajn agordojn per DHCP;
    • Aldonita subteno por redirektado de aŭtentigaj petoj per la servo Microsoft Passport;
  • Kriptografio
    • Efektivigita subteno por elipsaj kurbaj kriptografaj ŝlosiloj (ECC) dum uzado de GnuTLS;
    • Aldonis la kapablon importi ŝlosilojn kaj atestilojn el dosieroj en formato PFX;
    • Aldonita subteno por la ŝlosila generacia skemo bazita sur la pasvorto PBKDF2;
  • Teksto kaj tiparoj
    • La efektivigo de DirectWrite API aldonis subtenon por OpenType-funkcioj rilataj al glifo poziciigado, kiuj estas ebligitaj defaŭlte por la latina stilo, inkluzive de kerning;
    • Plibonigita sekureco por prilaborado de tipardatumoj kontrolante la ĝustecon de diversaj datumtabloj antaŭ ol uzi ilin;
    • DirectWrite-interfacoj estis aligitaj al la plej nova SDK;
  • Sono kaj video
    • Nova efektivigo de la sona API estis proponita XAudio2, konstruita surbaze de la projekto FAŭdio. Uzado de FAudio en Wine permesas atingi pli altan sonkvaliton en ludoj kaj uzi funkciojn kiel voluman miksadon kaj altnivelajn sonefektojn;
    • Granda nombro da novaj vokoj estis aldonita al la efektivigo de la Media Foundation-kadro, inkluzive de subteno por enkonstruitaj kaj kutimaj nesinkronaj atendovicoj, Source Reader API, Media Session, ktp.
    • La filtrilo de videokaptado estis ŝanĝita al uzado de la v4l2 API anstataŭ la v4l1 API, kiu vastigis la gamon de subtenataj fotiloj;
    • La enkonstruitaj AVI, MPEG-I kaj WAVE malĉifriloj estis forigitaj, anstataŭ kiuj la sistemo GStreamer aŭ QuickTime estas nun uzataj;
    • Aldonita subaro de VMR7-agordaj APIoj;
    • Aldonita subteno por ĝustigi la volumon de individuaj kanaloj al sonaj peliloj;
  • Internaciigo
    • Unikodaj tabeloj ĝisdatigitaj al versio 12.1.0;
    • Realigita subteno por Unikoda normaligo;
    • Provizita aŭtomata instalado de la geografia regiono (HKEY_CURRENT_USER\Control Panel\International\Geo) bazita sur la nuna loko;
  • RPC/COM
    • Aldonita subteno por kompleksaj strukturoj kaj tabeloj al typelib;
    • Aldonita komenca efektivigo de Windows Script rultempa biblioteko;
    • Aldonita komenca efektivigo de la biblioteko ADO (Microsoft ActiveX Data Objects);
  • Instalistoj
    • Subteno por livero de flikiloj (Filikdosieroj) estis efektivigita por la MSI-instalilo;
    • La utileco WUSA (Windows Update Standalone Installer) nun havas la kapablon instali ĝisdatigojn en .MSU-formato;
  • ARM-platformo
    • Por la ARM64-arkitekturo, subteno por staka malvolviĝo estis aldonita al ntdll. Aldonita subteno por konekti eksterajn bibliotekojn libunwind;
    • Por la ARM64-arkitekturo, subteno por senjuntaj prokuriloj estis efektivigita por objektointerfacoj;
  • Disvolvaj Iloj / Winelib
    • Aldonita la kapablo uzi la erarserĉilon de Visual Studio por malproksime sencimigi aplikaĵojn kurantajn en Wine;
    • La biblioteko DBGENG (Debug Engine) estis parte efektivigita;
    • Binaroj kompilitaj por Vindozo ne plu dependas de libwine, permesante al ili funkcii per Vindozo sen pliaj dependecoj;
    • Aldonita '--sysroot' opcio al Rimeda Kompililo kaj IDL Kompililo por determini la vojon por kapdosieroj;
    • Aldonitaj opcioj '—cel', '—wine-objdir', '—wine-objdir' al winegcc
      ‘—winebuild’ kaj ‘-fuse-ld’, kiuj simpligas agordon de la medio por kruc-kompilo;

  • Enkonstruitaj Aplikoj
    • Efektivigis CHCP-ilaĵon por agordi konzolan kodigon;
    • La MSIDB ilo por manipuli datumbazojn en MSI-formato estis efektivigita;
  • Optimumiga agado
    • Diversaj tempaj funkcioj estis migritaj por uzi alt-efikecajn sistemajn tempigilo-funkciojn, reduktante superkompeton en la bildiga buklo de multaj ludoj;
    • Aldonita la kapablo uzi Ext4 en FS reĝimo labori sen uskleco;
    • La agado de prilaborado de granda nombro da elementoj en listmontraj dialogoj funkciigantaj en LBS_NODATA-reĝimo estis optimumigita;
    • Aldonita pli rapida efektivigo de SRW-seruroj (Slim Reader/Writer) por Linukso, tradukita al Futex;
  • Eksteraj dependecoj
    • Por kunveni modulojn en PE-formato, la kruc-kompililo MinGW-w64 estas uzata;
    • Efektivigo de XAudio2 postulas la FAudio-bibliotekon;
    • Por spuri dosierŝanĝojn sur BSD-sistemoj
      la Inotify-biblioteko estas uzata;

    • Por trakti esceptojn sur la platformo ARM64, la biblioteko Unwind estas bezonata;
    • Anstataŭ Video4Linux1, la biblioteko Video4Linux2 nun estas bezonata.

fonto: opennet.ru

Aldoni komenton