Stable na release ng Wine 5.0

Pagkatapos ng isang taon ng pag-unlad at 28 pang-eksperimentong bersyon ipinakita matatag na paglabas ng bukas na pagpapatupad ng Win32 API - Alak 5.0, na kinabibilangan ng higit sa 7400 pagbabago. Kabilang sa mga pangunahing tagumpay ng bagong bersyon ang paghahatid ng mga built-in na Wine module sa PE format, suporta para sa mga multi-monitor na configuration, isang bagong pagpapatupad ng XAudio2 audio API at suporta para sa Vulkan 1.1 graphics API.

Sa Alak nakumpirma buong operasyon ng 4869 (isang taon na ang nakalipas 4737) na mga programa para sa Windows, isa pang 4136 (isang taon na ang nakalipas 4045) na mga programa ay gumagana nang perpekto sa mga karagdagang setting at panlabas na DLL. Ang 3635 na mga programa ay may maliliit na isyu sa pagganap na hindi nakakasagabal sa paggamit ng mga pangunahing pag-andar ng application.

Susi mga inobasyon Wine 5.0:

  • Mga module sa PE format
    • Gamit ang MinGW compiler, karamihan sa mga module ng Wine ay binuo na ngayon sa PE (Portable Executable, ginagamit sa Windows) executable file format sa halip na ELF. Ang paggamit ng PE ay nalulutas ang mga problema sa pagsuporta sa iba't ibang mga scheme ng proteksyon ng kopya na nagpapatunay sa pagkakakilanlan ng mga module ng system sa disk at sa memorya;
    • Ang mga PE executable ay kinokopya na ngayon sa ~/.wine ($WINEPREFIX) na direktoryo sa halip na gumamit ng mga dummy DLL file, na ginagawang mas katulad ang mga bagay sa mga tunay na pag-install ng Windows, sa gastos ng pagkonsumo ng karagdagang espasyo sa disk;
    • Ang mga module na na-convert sa PE na format ay maaaring gumamit ng pamantayan wchar C function at constants na may Unicode (halimbawa, L"abc");
    • Ang Wine C runtime ay nagdagdag ng suporta para sa pag-link sa mga binary na binuo sa MinGW, na ginagamit bilang default sa halip na MinGW runtime kapag gumagawa ng mga DLL;
  • Subsystem ng graphics
    • Idinagdag ang suporta para sa pagtatrabaho sa maraming monitor at graphics adapter, kabilang ang kakayahang dynamic na baguhin ang mga setting;
    • Ang driver para sa Vulkan graphics API ay na-update upang sumunod sa detalye ng Vulkan 1.1.126;
    • Ang WindowsCodecs library ay nagbibigay ng kakayahang mag-convert ng mga karagdagang format ng raster, kabilang ang mga format na may naka-index na palette;
  • Direct3D
    • Kapag nagpapatakbo ng mga full-screen na Direct3D na application, ang screen saver na tawag ay naharang;
    • Ang DXGI (DirectX Graphics Infrastructure) ay nagdagdag ng suporta para sa pagpapaalam sa isang application kapag ang window nito ay pinaliit, na nagpapahintulot sa application na bawasan ang pagganap ng mga resource-intensive na operasyon kapag pinaliit ang window;
    • Para sa mga application na gumagamit ng DXGI, posible na ngayong lumipat sa pagitan ng full-screen at windowed mode gamit ang kumbinasyong Alt+Enter;
    • Ang mga kakayahan ng pagpapatupad ng Direct3D 12 ay pinalawak, halimbawa, mayroon na ngayong suporta para sa paglipat sa pagitan ng full-screen at windowed na mga mode, pagbabago ng mga mode ng screen, pag-scale ng output at pamamahala sa rendering buffer replacement interval (swap interval);
    • Pinahusay na pangangasiwa sa iba't ibang sitwasyon sa borderline, gaya ng paggamit ng out-of-range na mga value ng input para sa transparency at depth test, pag-render gamit ang mga nakalarawang texture at buffer, at paggamit ng mga maling DirectDraw object gunting, paglikha ng mga Direct3 device para sa mga maling window, gamit ang mga nakikitang lugar na ang pinakamababang halaga ng parameter ay katumbas ng maximum, atbp.
    • Ang Direct3D 8 at 9 ay nagbibigay ng mas tumpak na pagsubaybay "marumiΒ» mga lugar ng load texture;
    • Ang laki ng kinakailangang espasyo ng address kapag naglo-load ng mga 3D na texture na na-compress gamit ang pamamaraang S3TC ay nabawasan (sa halip na ganap na mag-load, ang mga texture ay nilo-load sa mga tipak).
    • Ipinatupad ang interface ID3D11Multithread upang protektahan ang mga kritikal na seksyon sa mga multi-threaded na application;
    • Iba't ibang mga pagpapahusay at pag-aayos na may kaugnayan sa mga kalkulasyon ng ilaw ay ginawa para sa mga mas lumang DirectDraw application;
    • Nagpatupad ng mga karagdagang tawag upang makakuha ng impormasyon tungkol sa mga shader sa API ShaderReflection;
    • Sinusuportahan na ngayon ng wined3d paltos Nakabatay sa CPU para sa pagproseso ng mga naka-compress na mapagkukunan;
    • Ang database ng mga graphics card na kinikilala sa Direct3D ay pinalawak;
    • Nagdagdag ng mga bagong registry key HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend para sa pagtatrabaho sa mga shader: "glsl" para sa GLSL, "arb" para sa ARB vertex/fragment at "wala" upang hindi paganahin ang shader support), "strict_shader_math" ( 0x1 - paganahin, 0x0 - huwag paganahin ang Direct3D shader conversion). Hindi na ginagamit ang key na "UseGLSL" (dapat gumamit ng "shader_backend");
  • D3DX
    • Ang suporta para sa mekanismo ng 3D texture compression na S3TC (S3 Texture Compression) ay ipinatupad;
    • Nagdagdag ng mga tamang pagpapatupad ng mga pagpapatakbo tulad ng pagpuno ng texture at mga hindi maimapa na ibabaw;
    • Iba't ibang pagpapabuti at pag-aayos ang ginawa sa balangkas ng paglikha visual effects;
  • Kernel (Mga Interface ng Windows Kernel)
    • Karamihan sa mga function na ginamit sa Kernel32 ay inilipat sa
      KernelBase, kasunod ng mga pagbabago sa arkitektura ng Windows;

    • Kakayahang maghalo ng 32- at 64-bit na DLL sa mga direktoryo na ginagamit para sa paglo-load. Tinitiyak na ang mga aklatan na hindi tumutugma sa kasalukuyang bit depth ay binabalewala (32/64), kung sakaling higit pa sa landas posible na makahanap ng isang library na tama para sa kasalukuyang bit depth;
    • Para sa mga driver ng device, ang emulation ng mga kernel object ay napabuti;
    • Ipinatupad ang mga bagay sa pag-synchronize na gumagana sa antas ng kernel, tulad ng mga spin lock, mabilis na mutex at mga variable na naka-attach sa isang mapagkukunan;
    • Tinitiyak na ang mga application ay tama ang kaalaman tungkol sa katayuan ng baterya;
  • Interface ng Gumagamit at Pagsasama ng Desktop
    • Ang mga pinaliit na bintana ay ipinapakita na ngayon gamit ang isang title bar sa halip na isang icon ng estilo ng Windows 3.1;
    • Nagdagdag ng mga bagong istilo ng button SplitButton (button na may drop-down na listahan ng mga aksyon) at Mga Link ng Utos (mga link sa mga dialog box na ginamit upang lumipat sa susunod na yugto);
    • Ang mga simbolikong link ay nilikha para sa 'Mga Pag-download' at 'Mga Template' na folder, na tumuturo sa kaukulang mga direktoryo sa mga sistema ng Unix;
  • Mga aparatong input
    • Sa pagsisimula, ang kinakailangang mga driver ng Plug & Play device ay naka-install at na-load;
    • Pinahusay na suporta para sa mga controller ng laro, kabilang ang isang mini-joystick (sumbrero switch), manibela, gas at brake pedal.
    • Ang suporta para sa lumang Linux joystick API na ginamit sa mga kernel ng Linux bago ang bersyon 2.2 ay hindi na ipinagpatuloy;
  • . NET
    • Ang Mono engine ay na-update upang ilabas ang 4.9.4 at ngayon ay kinabibilangan ng mga bahagi ng Windows Presentation Foundation (WPF) framework;
    • Nagdagdag ng kakayahang mag-install ng mga add-on sa Mono at Gecko sa isang karaniwang direktoryo, paglalagay ng mga file sa /usr/share/wine hierarchy sa halip na kopyahin ang mga ito sa mga bagong prefix;
  • Mga tampok sa network
    • Ang Wine Gecko browser engine, na ginagamit sa MSHTML library, ay na-update upang ilabas ang 2.47.1. Naipatupad na ang suporta para sa mga bagong HTML API;
    • Sinusuportahan na ngayon ng MSHTML ang mga elemento ng SVG;
    • Nagdagdag ng maraming bagong function ng VBScript (halimbawa, mga error at exception handler, Oras, Araw, Buwan, String, LBound, RegExp.Replace, Π ScriptTypeInfo_* at ScriptTypeComp_Bind* function, atbp.);
    • Ibinigay ang pangangalaga ng code state sa VBScript at JScript (script persistence);
    • Nagdagdag ng paunang pagpapatupad ng serbisyo ng HTTP (WinHTTP) at ang nauugnay na API (HTTPAPI) para sa mga application ng kliyente at server na nagpapadala at tumatanggap ng mga kahilingan gamit ang HTTP protocol;
    • Ipinatupad ang kakayahang makakuha ng mga setting ng HTTP proxy sa pamamagitan ng DHCP;
    • Nagdagdag ng suporta para sa pag-redirect ng mga kahilingan sa pagpapatunay sa pamamagitan ng serbisyo ng Microsoft Passport;
  • Cryptography
    • Ipinatupad ang suporta para sa mga elliptic curve cryptographic key (ECC) kapag gumagamit ng GnuTLS;
    • Idinagdag ang kakayahang mag-import ng mga susi at sertipiko mula sa mga file sa format na PFX;
    • Nagdagdag ng suporta para sa key generation scheme batay sa password ng PBKDF2;
  • Teksto at mga font
    • Ang pagpapatupad ng DirectWrite API ay nagdagdag ng suporta para sa mga tampok na OpenType na nauugnay sa pagpoposisyon ng glyph, na pinagana bilang default para sa istilong Latin, kabilang ang kerning;
    • Pinahusay na seguridad para sa pagproseso ng data ng font sa pamamagitan ng pagsuri sa kawastuhan ng iba't ibang mga talahanayan ng data bago gamitin ang mga ito;
    • Ang mga interface ng DirectWrite ay naiayon sa pinakabagong SDK;
  • Tunog at video
    • Ang isang bagong pagpapatupad ng sound API ay iminungkahi XAudio2, na binuo batay sa proyekto FAudio. Ang paggamit ng FAudio sa Wine ay nagbibigay-daan sa iyong makamit ang mas mataas na kalidad ng tunog sa mga laro at gumamit ng mga feature gaya ng paghahalo ng volume at mga advanced na sound effect;
    • Malaking bilang ng mga bagong tawag ang naidagdag sa pagpapatupad ng balangkas ng Media Foundation, kabilang ang suporta para sa mga built-in at custom na asynchronous na pila, Source Reader API, Media Session, atbp.
    • Ang filter ng pagkuha ng video ay inilipat sa paggamit ng v4l2 API sa halip na ang v4l1 API, na nagpalawak ng hanay ng mga sinusuportahang camera;
    • Ang mga built-in na AVI, MPEG-I at WAVE decoder ay inalis, sa halip na ang system na GStreamer o QuickTime ang ginagamit na ngayon;
    • Nagdagdag ng subset ng mga VMR7 configuration API;
    • Nagdagdag ng suporta para sa pagsasaayos ng volume ng mga indibidwal na channel sa sound driver;
  • НтСрнационализация
    • Ang mga talahanayan ng Unicode ay na-update sa bersyon 12.1.0;
    • Ipinatupad ang suporta para sa normalisasyon ng Unicode;
    • Ibinigay ang awtomatikong pag-install ng heyograpikong rehiyon (HKEY_CURRENT_USER\Control Panel\International\Geo) batay sa kasalukuyang lokal;
  • RPC/COM
    • Nagdagdag ng suporta para sa mga kumplikadong istruktura at array sa typelib;
    • Nagdagdag ng paunang pagpapatupad ng Windows Script runtime library;
    • Nagdagdag ng paunang pagpapatupad ng library ng ADO (Microsoft ActiveX Data Objects);
  • Mga installer
    • Ang suporta para sa paghahatid ng mga patch (Patch Files) ay ipinatupad para sa installer ng MSI;
    • Ang utility ng WUSA (Windows Update Standalone Installer) ay may kakayahang mag-install ng mga update sa .MSU na format;
  • ARM platform
    • Para sa arkitektura ng ARM64, ang suporta para sa stack unwinding ay idinagdag sa ntdll. Nagdagdag ng suporta para sa pagkonekta ng mga panlabas na libunwind library;
    • Para sa arkitektura ng ARM64, ang suporta para sa mga seamless na proxy ay ipinatupad para sa mga interface ng object;
  • Mga Tool sa Pag-unlad / Winelib
    • Idinagdag ang kakayahang gamitin ang debugger mula sa Visual Studio upang malayuang i-debug ang mga application na tumatakbo sa Wine;
    • Ang DBGENG (Debug Engine) library ay bahagyang naipatupad;
    • Ang mga binary na pinagsama-sama para sa Windows ay hindi na umaasa sa libwine, na nagpapahintulot sa kanila na tumakbo sa Windows nang walang karagdagang mga dependency;
    • Idinagdag ang '--sysroot' na opsyon sa Resource Compiler at IDL Compiler upang matukoy ang landas para sa mga file ng header;
    • Idinagdag ang 'β€”target', 'β€”wine-objdir' na mga opsyon sa winegcc
      'β€”winebuild' at '-fuse-ld', na nagpapasimple sa pag-set up ng kapaligiran para sa cross-compilation;

  • Mga Naka-embed na Application
    • Nagpatupad ng CHCP utility para i-configure ang console encoding;
    • Ang MSIDB utility para sa pagmamanipula ng mga database sa MSI format ay ipinatupad;
  • Pag-optimize ng pagganap
    • Ang iba't ibang mga function ng timing ay inilipat upang gumamit ng mga function ng timer ng system na may mataas na pagganap, na binabawasan ang overhead sa render loop ng maraming mga laro;
    • Nagdagdag ng kakayahang gumamit ng Ext4 sa FS rehimen magtrabaho nang walang case sensitivity;
    • Ang pagganap ng pagproseso ng malaking bilang ng mga elemento sa mga list display dialog na tumatakbo sa LBS_NODATA mode ay na-optimize;
    • Nagdagdag ng mas mabilis na pagpapatupad ng mga SRW lock (Slim Reader/Writer) para sa Linux, na isinalin sa Futex;
  • Mga panlabas na dependency
    • Upang mag-assemble ng mga module sa PE format, ginagamit ang MinGW-w64 cross-compiler;
    • Ang pagpapatupad ng XAudio2 ay nangangailangan ng FAudio library;
    • Upang subaybayan ang mga pagbabago sa file sa mga BSD system
      ang Inotify library ay ginagamit;

    • Upang mahawakan ang mga pagbubukod sa platform ng ARM64, kinakailangan ang Unwind library;
    • Sa halip na Video4Linux1, kailangan na ang Video4Linux2 library.

Pinagmulan: opennet.ru

Magdagdag ng komento