Rilis stabil saka Wine 5.0

Sawise setahun pembangunan lan 28 versi eksperimen diwenehi release stabil saka implementasi mbukak saka Win32 API - Anggur 5.0, sing kalebu luwih saka 7400 owah-owahan. Prestasi utama versi anyar kalebu pangiriman modul Wine sing dibangun ing format PE, dhukungan kanggo konfigurasi multi-monitor, implementasi anyar saka API audio XAudio2 lan dhukungan kanggo API grafis Vulkan 1.1.

Ing Anggur dikonfirmasi operasi lengkap 4869 (setaun kepungkur 4737) program kanggo Windows, liyane 4136 (setaun kepungkur 4045) program bisa sampurna karo setelan tambahan lan DLL external. 3635 program duwe masalah kinerja cilik sing ora ngganggu panggunaan fungsi aplikasi dhasar.

Kunci inovasi Anggur 5.0:

  • Modul ing format PE
    • Kanthi kompiler MinGW, paling akeh modul Wine saiki dibangun ing format file eksekusi PE (Portable Executable, digunakake ing Windows) tinimbang ELF. Panggunaan PE ngatasi masalah kanthi ndhukung macem-macem skema perlindungan salinan sing verifikasi identitas modul sistem ing disk lan ing memori;
    • Eksekusi PE saiki disalin menyang direktori ~ / .wine ($ WINEPREFIX) tinimbang nggunakake file DLL goblok, nggawe barang kasebut luwih mirip karo instalasi Windows nyata, kanthi biaya nggunakake ruang disk tambahan;
    • Modul sing diowahi dadi format PE bisa nggunakake standar wchar Fungsi lan konstanta C nganggo Unicode (contone, L"abc");
    • Wine C runtime wis nambahake dhukungan kanggo ngubungake binari sing dibangun ing MinGW, sing digunakake kanthi standar tinimbang runtime MinGW nalika mbangun DLL;
  • Subsistem grafis
    • Dhukungan ditambahake kanggo nggarap macem-macem monitor lan adaptor grafis, kalebu kemampuan kanggo ngganti setelan kanthi dinamis;
    • Driver kanggo API grafis Vulkan wis dianyari kanggo tundhuk karo Vulkan 1.1.126 specification;
    • Pustaka WindowsCodecs nyedhiyakake kemampuan kanggo ngowahi format raster tambahan, kalebu format kanthi palet sing diindeks;
  • Direct3D
    • Nalika mbukak aplikasi Direct3D layar wutuh, telpon screen saver diblokir;
    • DXGI (DirectX Graphics Infrastructure) wis ditambahaké support kanggo ngandhani aplikasi nalika jendhela wis nyilikake, sing ngidini aplikasi kanggo ngurangi kinerja operasi sumber-intensif nalika nyilikake jendhela;
    • Kanggo aplikasi sing nggunakake DXGI, saiki bisa ngalih ing antarane mode layar wutuh lan jendhela kanthi nggunakake kombinasi Alt + Enter;
    • Kapabilitas implementasi Direct3D 12 wis ditambahi, contone, saiki ana dhukungan kanggo ngalih ing antarane mode layar wutuh lan jendela, ngganti mode layar, skala output lan ngatur interval panggantos buffer rendering (interval swap);
    • Penanganan sing luwih apik kanggo macem-macem kahanan wates, kayata nggunakake nilai input sing ora ana jarak kanggo tes transparansi lan jero, rendering kanthi tekstur lan buffer sing dibayangke, lan nggunakake obyek DirectDraw sing salah clip, nggawe piranti Direct3 kanggo jendhela sing salah, nggunakake area sing katon sing nilai parameter minimal padha karo maksimal, lsp.
    • Direct3D 8 lan 9 nyedhiyakake pelacakan sing luwih akurat "reged» area tekstur sing dimuat;
    • Ukuran papan alamat sing dibutuhake nalika ngemot tekstur 3D sing dikompres nggunakake metode S3TC wis suda (tinimbang ngemot kabeh, tekstur dimuat ing potongan).
    • Antarmuka dileksanakake ID3D11 Multithread kanggo nglindhungi bagean kritis ing aplikasi multi-Utas;
    • Macem-macem dandan lan koreksi sing ana gandhengane karo petungan cahya wis digawe kanggo aplikasi DirectDraw sing lawas;
    • Dileksanakake telpon tambahan kanggo njupuk informasi bab shaders ing API ShaderReflection;
    • wined3d saiki ndhukung blitter basis CPU kanggo ngolah sumber daya sing dikompres;
    • Database kertu grafis sing diakoni ing Direct3D wis ditambahi;
    • Nambahake kunci registri anyar HKEY_CURRENT_USER\Software\Wine\Direct3D: "shader_backend" (backend kanggo nggarap shaders: "glsl" kanggo GLSL, "arb" kanggo ARB vertex / fragmen lan "ora ana" kanggo mateni support shader), "strict_shader_math" ( 0x1 - ngaktifake, 0x0 - mateni konversi shader Direct3D). Tombol "UseGLSL" ora digunakake (kudu nggunakake "shader_backend");
  • D3DX
    • Dhukungan kanggo mekanisme kompresi tekstur 3D S3TC (S3 Texture Compression) wis dileksanakake;
    • Nambahake implementasine operasi sing bener kayata ngisi tekstur lan permukaan sing ora bisa ditrapake;
    • Macem-macem dandan lan ndandani wis digawe kanggo kerangka nggawe efek visual;
  • Kernel (Antarmuka Kernel Windows)
    • Umume fungsi sing digunakake ing Kernel32 wis dipindhah menyang
      KernelBase, sawise owah-owahan ing arsitektur Windows;

    • Kemampuan kanggo nyampur DLL 32- lan 64-bit ing direktori sing digunakake kanggo loading. Mesthekake yen perpustakaan sing ora cocog karo ambane bit saiki ora digatekake (32/64), ing kasus luwih ing dalan bisa nemokake perpustakaan sing bener kanggo ambane bit saiki;
    • Kanggo driver piranti, emulasi obyek kernel wis apik;
    • Objek sinkronisasi sing diimplementasikake ing level kernel, kayata kunci spin, mutex cepet lan variabel sing dipasang ing sumber;
    • Mesthekake yen aplikasi diwenehi informasi kanthi bener babagan status baterei;
  • Antarmuka pangguna lan Integrasi Desktop
    • Jendhela sing diminimalisir saiki ditampilake nggunakake garis judhul tinimbang lambang gaya Windows 3.1;
    • Nambahake gaya tombol anyar Tombol Pisah (tombol karo dhaptar gulung-mudhun saka tumindak) lan Link Command (pranala ing kothak dialog sing digunakake kanggo pindhah menyang tahap sabanjure);
    • Tautan simbolis wis digawe kanggo folder 'Unduh' lan 'Cithakan', nuding menyang direktori sing cocog ing sistem Unix;
  • Piranti input
    • Ing wiwitan, driver piranti Plug & Play sing perlu diinstal lan dimuat;
    • Dhukungan sing luwih apik kanggo pengontrol game, kalebu mini-joystick (saklar topi), setir, pedal gas lan rem.
    • Dhukungan kanggo API joystick Linux lawas sing digunakake ing kernel Linux sadurunge versi 2.2 wis mandheg;
  • NET
    • Mesin Mono wis dianyari kanggo release 4.9.4 lan saiki kalebu bagéan saka Windows Presentation Foundation (WPF) framework;
    • Nambahake kemampuan kanggo nginstal add-ons karo Mono lan Gecko ing siji direktori umum, nempatake file ing / usr / share / hierarki anggur tinimbang nyalin menyang prefiks anyar;
  • Fitur jaringan
    • Mesin browser Wine Gecko, sing digunakake ing perpustakaan MSHTML, wis dianyari kanggo release 2.47.1. Dhukungan kanggo API HTML anyar wis dileksanakake;
    • MSHTML saiki ndhukung unsur SVG;
    • Nambahake akeh fungsi VBScript anyar (contone, kesalahan lan pangecualian handler, Jam, Dina, Sasi, String, LBound, RegExp.Replace, РScriptTypeInfo_ * lan ScriptTypeComp_Bind * fungsi, etc.);
    • Nyedhiyakake pengawetan negara kode ing VBScript lan JScript (terus-terusan script);
    • Nambahake implementasi awal layanan HTTP (WinHTTP) lan API sing gegandhengan (HTTPAPI) kanggo aplikasi klien lan server sing ngirim lan nampa panjalukan nggunakake protokol HTTP;
    • Dileksanakake kemampuan kanggo njupuk setelan proxy HTTP liwat DHCP;
    • Dhukungan tambahan kanggo ngarahake panjalukan otentikasi liwat layanan Microsoft Passport;
  • Kriptografi
    • Dhukungan kanggo kunci kriptografi kurva elliptic (ECC) nalika nggunakake GnuTLS;
    • Nambahake kemampuan kanggo ngimpor kunci lan sertifikat saka file ing format PFX;
    • Dhukungan tambahan kanggo skema generasi kunci adhedhasar sandi PBKDF2;
  • Teks lan font
    • Implementasi DirectWrite API wis nambahake dhukungan kanggo fitur OpenType sing ana gandhengane posisi glyph, sing diaktifake kanthi standar kanggo gaya Latin, kalebu kerning;
    • Ngapikake keamanan kanggo ngolah data font kanthi mriksa bener saka macem-macem tabel data sadurunge digunakake;
    • Antarmuka DirectWrite wis digawa menyang baris karo SDK paling anyar;
  • Swara lan video
    • A implementasine anyar saka API swara wis ngajokaken XAudio2, dibangun ing basis saka project FAudio. Nggunakake FAudio ing Wine ngidini sampeyan entuk kualitas swara sing luwih dhuwur ing game lan nggunakake fitur kayata campuran volume lan efek swara maju;
    • A nomer akeh telpon anyar wis ditambahaké kanggo implementasine saka Media Foundation framework, kalebu support kanggo dibangun lan antrian bedo adat, Source Reader API, Media Session, etc.
    • Filter Jupuk video wis diuripake kanggo nggunakake v4l2 API tinimbang v4l1 API, kang wis ditambahi sawetara kamera didhukung;
    • Dekoder AVI, MPEG-I lan WAVE sing dibangun wis dibusak, tinimbang sistem GStreamer utawa QuickTime saiki digunakake;
    • Nambahake subset saka API konfigurasi VMR7;
    • Dhukungan ditambahake kanggo nyetel volume saluran individu menyang driver swara;
  • Ngundhuh
    • Tabel Unicode dianyari kanggo versi 12.1.0;
    • Dhukungan kanggo normalisasi Unicode;
    • Nyedhiyakake instalasi otomatis wilayah geografis (HKEY_CURRENT_USER\Control Panel\International\Geo) adhedhasar lokal saiki;
  • RPC/COM
    • Dhukungan ditambahake kanggo struktur lan susunan kompleks kanggo typelib;
    • Nambahake implementasi awal saka perpustakaan runtime Windows Script;
    • Nambahake implementasine awal perpustakaan ADO (Microsoft ActiveX Data Objects);
  • Installers
    • Dhukungan kanggo pangiriman patch (File Patch) wis dileksanakake kanggo installer MSI;
    • Utilitas WUSA (Windows Update Standalone Installer) saiki nduweni kemampuan kanggo nginstal nganyari ing format .MSU;
  • platform ARM
    • Kanggo arsitektur ARM64, dhukungan kanggo stack unwinding wis ditambahake menyang ntdll. Dhukungan tambahan kanggo nyambungake perpustakaan libunwind eksternal;
    • Kanggo arsitektur ARM64, dhukungan kanggo proxy lancar wis dileksanakake kanggo antarmuka obyek;
  • Piranti Pangembangan / Winelib
    • Nambahake kemampuan kanggo nggunakake debugger saka Visual Studio kanggo mbatalake aplikasi debug sing mlaku ing Wine;
    • Pustaka DBGENG (Debug Engine) wis sebagian dileksanakake;
    • Binari sing dikompilasi kanggo Windows ora gumantung maneh ing libwine, supaya bisa mlaku ing Windows tanpa dependensi tambahan;
    • Nambahake opsi '--sysroot' menyang Resource Compiler lan IDL Compiler kanggo nemtokake path kanggo file header;
    • Nambahake opsi '-target', '-wine-objdir' menyang winegcc
      '-winebuild' lan '-fuse-ld', sing nyederhanakake nyetel lingkungan kanggo kompilasi silang;

  • Aplikasi sing dipasang
    • Ngleksanakake sarana CHCP kanggo ngatur enkoding console;
    • Utilitas MSIDB kanggo manipulasi database ing format MSI wis dileksanakake;
  • Kinerja ngoptimalake
    • Macem-macem fungsi wektu wis migrasi kanggo nggunakake fungsi sistem timer kinerja dhuwur, ngurangi nduwur sirah ing daur ulang render akeh game;
    • Nambahake kemampuan kanggo nggunakake Ext4 ing FS rezim bisa tanpa sensitivitas cilik;
    • Kinerja pangolahan akeh unsur ing dhaptar dialog tampilan sing operasi ing mode LBS_NODATA wis optimized;
    • Nambahake implementasine luwih cepet saka kunci SRW (Slim Reader / Writer) kanggo Linux, diterjemahake menyang Futex;
  • Ketergantungan eksternal
    • Kanggo ngumpul modul ing format PE, MinGW-w64 cross-compiler digunakake;
    • Ngleksanakake XAudio2 mbutuhake perpustakaan FAudio;
    • Kanggo nglacak owah-owahan file ing sistem BSD
      perpustakaan Inotify digunakake;

    • Kanggo nangani pengecualian ing platform ARM64, perpustakaan Unwind dibutuhake;
    • Tinimbang Video4Linux1, perpustakaan Video4Linux2 saiki dibutuhake.

Source: opennet.ru

Add a comment