Setelah satu tahun pengembangan dan 29 versi eksperimental, rilis stabil implementasi terbuka API Win32 - Wine 10.0, yang menggabungkan lebih dari 6000 perubahan, telah disajikan. Pencapaian utama dalam versi baru ini mencakup dukungan penuh untuk arsitektur ARM64EC, penskalaan pada layar dengan kepadatan piksel tinggi, penyertaan driver Wayland secara default, penerapan panel untuk menyesuaikan layar dan joystick, backend multimedia alternatif berdasarkan FFmpeg, Bluetooth driver, dukungan Vulkan 1.4, kemampuan emulasi untuk beralih mode video.
Sebanyak 5372 program telah dikonfirmasi berfungsi dengan baik di Wine. Windows (5336 setahun yang lalu, 5266 dua tahun yang lalu, 5156 tiga tahun yang lalu), 4435 program lainnya (4397 setahun yang lalu, 4370 dua tahun yang lalu, 4312 tiga tahun yang lalu) berfungsi dengan baik dengan pengaturan tambahan dan DLL eksternal. 4020 program (3943 setahun yang lalu, 3888 dua tahun yang lalu, 3813 tiga tahun yang lalu) memiliki masalah kecil yang tidak mengganggu fungsi dasar aplikasi.
Inovasi utama dalam Wine 10.0:
- ARM64
- Dukungan penuh diberikan untuk arsitektur ARM64EC (Kompatibel Emulasi ARM64), tingkat dukungan dalam Wine yang telah mencapai kesetaraan dengan arsitektur ARM64. Arsitektur ARM64EC dirancang untuk menyederhanakan porting aplikasi yang awalnya ditulis untuk sistem x64_86 ke sistem ARM64, dan memungkinkan masing-masing modul kode x64_86 dijalankan di lingkungan ARM64 menggunakan emulator.
- Dukungan penuh telah diterapkan untuk format file ARM64X PE, yang memungkinkan Anda menggabungkan kode untuk arsitektur ARM64EC dan ARM64 dalam satu file yang dapat dieksekusi. Untuk membuat Wine dalam format ARM64X, Anda perlu menginstal LLVM dari Git (fungsi yang diperlukan akan disertakan dalam rilis LLVM 20) dan saat menjalankan skrip "configure", tentukan opsi "-enable-archs=arm64ec,aarch64" .
- Antarmuka untuk meniru sistem x64 86-bit telah diterapkan. Saat menggunakan ARM64EC, Wine sendiri berjalan apa adanya, dan emulasi hanya diterapkan pada kode aplikasi x86-64. Pustaka dengan emulator belum disertakan dalam paket Wine utama, tetapi untuk menjalankan kode x86-64 di lingkungan ARM64, Anda dapat menggunakan emulator FEX eksternal yang dibuat dengan dukungan ARM64EC.
- Dukungan ARM64 mengharuskan sistem untuk menggunakan halaman memori 4KB seperti yang dipersyaratkan oleh ABI. Windows (berjalan di lingkungan dengan kernel) Linux(Penggunaan halaman memori 16K atau 64K belum didukung).
- Subsistem grafis
- Menerapkan penskalaan yang lebih akurat pada layar dengan kepadatan piksel tinggi (DPI Tinggi). Dukungan untuk mode Kesadaran DPI telah disediakan untuk mengatur tampilan aplikasi pada layar dengan kerapatan piksel tinggi, dengan mempertimbangkan apakah aplikasi tersebut mendukung adaptasi terhadap perubahan DPI atau tidak (aplikasi yang tidak memperhitungkan DPI akan diskalakan secara otomatis). Menambahkan opsi untuk mengesampingkan dukungan DPI Tinggi untuk aplikasi individual atau awalan Wine.
- Dukungan untuk spesifikasi Vulkan 1.4 telah ditambahkan ke driver untuk API grafis Vulkan (Vulkan 9.0 didukung di Wine 1.3.272). Menambahkan dukungan untuk ekstensi Vulkan untuk pengkodean dan dekode video.
- Saat menggunakan backend X11, kemampuan untuk merender jendela anak Vulkan untuk aplikasi yang menggunakan jendela tersebut untuk menampilkan konten 3D (sebelumnya, fitur tersebut hanya tersedia untuk OpenGL).
- Dukungan untuk mekanisme penautan font telah ditambahkan ke perpustakaan GdiPlus, yang memungkinkan Anda menggunakan beberapa font saat menampilkan teks jika tidak ada font yang secara terpisah mencakup semua karakter yang ditemukan dalam teks.
- Wayland
- Konfigurasi default menyertakan driver winewayland.drv, yang memungkinkan Wine berjalan di lingkungan berbasis Wayland tanpa menggunakan komponen XWayland atau X11. Wine meluncurkan aplikasi default langsung di Wayland hanya jika XWayland tidak tersedia; jika tidak, XWayland adalah peluncur yang lebih disukai. Untuk memaksa penggunaan Wayland, Anda dapat menggunakan variabel lingkungan DISPLAY atau menambahkan kunci registri dengan membuat file .reg: Windows Editor Registri Versi 5.00 [HKEY_CURRENT_USER\Software\Wine\Drivers] "Graphics" = "wayland" dan terapkan dengan perintah: $ WINEPREFIX = /path/to/prefix wine regedit /path/to/file.reg
- Menambahkan dukungan untuk OpenGL dan buffer piksel (pBuffer) ke driver winewayland.drv.
- Menyelesaikan masalah dengan pemosisian popup di lingkungan berbasis Wayland.
- Saat menggunakan Wayland, dukungan untuk pengulangan otomatis saat menekan tombol diterapkan.
- Integrasi desktop
- Menambahkan mekanisme emulasi "pengaturan mode" eksperimental yang memungkinkan Anda meniru peralihan mode video tanpa benar-benar mengubah pengaturan layar. Visibilitas mengubah resolusi layar tanpa mengganti mode video dibuat melalui perluasan dan penskalaan jendela.
- Applet Panel Kontrol Desktop baru (desk.cpl) telah ditambahkan dengan implementasi antarmuka untuk mengelola pengaturan tampilan (misalnya, Anda dapat mengubah resolusi virtual desktop atau mengonfigurasi parameter tampilan yang ditiru).
- Menambahkan kemampuan untuk mengatur ulang pengaturan layar ke nilai default jika tidak mungkin memulihkan keadaan setelah proses terhenti.
- Menambahkan dukungan untuk menonaktifkan tampilan ikon di system tray (di "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" harus menentukan "NoTrayItemsDisplay=1").
- Menambahkan dukungan untuk menonaktifkan shell (peluncur shell) dalam mode desktop (di "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" harus menentukan "NoDesktop=1").
- Direct3D
- Rendering dengan OpenGL sekarang memerlukan dukungan untuk GLSL 1.20, serta ekstensi EXT_framebuffer_object dan ARB_texture_non_power_of_two. Dukungan untuk backend shader ARB lama dan pengaturan OffscreenRenderingMode telah dihentikan.
- Untuk Direct3D 9 dan yang lebih lama, pipeline grafis fungsi tetap telah ditambahkan (Direct3D lama hanya menyediakan operasi grafis yang telah ditentukan sebelumnya yang tidak dapat diubah), diimplementasikan menggunakan bahasa shader HLSL dan memungkinkan emulasi fungsi tetap saat rendering melalui Vulkan atau OpenGL API.
- Rendering dengan Vulkan menggunakan ekstensi Vulkan untuk mengubah status pipeline grafis secara dinamis, sehingga mengurangi kegagapan dalam game.
- Menambahkan backend glsl-vkd3d alternatif untuk shader GLSL, menggunakan vkd3d-shader.
- Memberikan dukungan awal untuk mengkompilasi efek Direct3D menggunakan vkd3d-shader.
- Pustaka D3DX9 mengimplementasikan kemampuan untuk menghasilkan tekstur MIP (MipMap) saat memuat tekstur volumetrik. Menambahkan dukungan untuk format representasi warna RGBA 64bpp dan 48bpp RGB dalam gambar PNG, serta format X8L8V8U8, A2W10V10U10, A8P8, V16U16, dan Q16W16V16U16.
- Suara dan video
- Sebagai alternatif dari backend berbasis GStreamer, backend multimedia baru diimplementasikan berdasarkan penggunaan FFmpeg dan cocok untuk menjalankan framework Media Foundation. Untuk mengaktifkan backend alternatif, Anda harus menentukan “DisableGstByteStreamHandler=1” di bagian registri “HKCU\Software\Wine\MediaFoundation”.
- Implementasi Media Foundation API telah ditingkatkan untuk mengakomodasi aplikasi yang bergantung pada komponen demultiplexing dan decoding dengan lebih baik.
- DirectMusic API telah menambahkan dukungan untuk memuat file MIDI.
- Perangkat input
- Menambahkan versi awal driver Bluetooth.
- Menambahkan applet Panel Kontrol Joystick (joy.cpl) dengan implementasi pengaturan untuk joystick.
- Perbaikan telah dilakukan pada perangkat penunjuk (touchpad, mouse) yang menggunakan protokol HID (Human Interface Device). Driver mouhid.sys untuk perangkat HID telah ditambahkan. Penguraian yang benar untuk perangkat input komposit telah diimplementasikan, dan informasi tentangnya sekarang dikirimkan ke Windows-aplikasi, sebagai perangkat terpisah.
- Untuk backend X11, dukungan untuk layar sentuh telah ditambahkan dan kemampuan untuk menggunakan mode multi-sentuh melalui pemrosesan pesan WM_POINTER* (WM_POINTERENTER, WM_POINTERLEAVE, dll.) telah diterapkan.
- Menerapkan penempatan beberapa struktur internal perpustakaan user32 di memori bersama, yang meningkatkan kinerja dan mengurangi beban pada Wine Server.
- Winex11 menambahkan dukungan untuk memproses peristiwa XInput2 sehubungan dengan masing-masing jendela.
- Menerapkan dukungan yang benar untuk keyboard dengan tata letak Dvorak.
- Kernel (antarmuka kernel) Windows)
- Menambahkan dukungan untuk eskalasi hak istimewa proses (proses yang awalnya berjalan sebagai pengguna standar dapat diberikan hak istimewa administrator). Saat membuat proses server (server tindakan msi), serta proses yang memanggil fungsi RtlCreateUserProcess() dan CreateProcessInternal(), token administrator terbatas diaktifkan secara default.
- Saat memperoleh informasi tentang label disk, bila memungkinkan, akses layanan sistem melalui DBus kini digunakan, alih-alih mencoba mengakses perangkat secara langsung.
- Mekanisme komunikasi antarproses (IPC) satu arah Mailslots kini diimplementasikan langsung di server Wine, memungkinkan dukungan semantik penuh. Windows.
- Diimplementasikan menunggu peristiwa port serial dalam mode asinkron.
- Menambahkan dukungan penuh untuk ekstensi prosesor XSTATE dalam konteks thread, memungkinkan penggunaan ekstensi vektor baru seperti AVX-512.
- Aplikasi Tertanam
- Mesin pengolah data masukan yang digunakan dalam penerjemah perintah cmd.exe telah ditulis ulang. Menambahkan dukungan untuk operasi “||” ke cmd.exe Dan "&&".
- Utilitas findtr telah menambahkan dukungan untuk ekspresi reguler dan pencarian peka huruf besar-kecil.
- Kemampuan untuk mendaftarkan modul ARM32EC telah ditambahkan ke utilitas regsvr32 dan rundll64.
- Utilitas yang ditambahkan: sort untuk mengurutkan data masukan, fc untuk membandingkan file dan tempat untuk mencari file.
- Aplikasi wmic mengimplementasikan mode operasi interaktif.
- Explorer telah menambahkan dukungan opsional untuk menu mulai dan toolbar. Mengaktifkan peluncuran explorer.exe dengan hak akses yang dikurangi.
- Alat Pengembangan
- Menambahkan opsi "-marm64x" ke winebuild untuk menghasilkan perpustakaan hibrid ARM64X.
- Menambahkan opsi "-marm64x" ke winegcc untuk memungkinkan pembuatan ARM64X.
- File yang dihasilkan menggunakan Interface Definition Language (IDL) menggunakan komponen yang sepenuhnya mendukung eksekusi dalam mode interpretasi.
- Dukungan untuk menghasilkan perpustakaan tipe (TypeLib) dalam format lama (SLTG) telah ditambahkan ke kompiler IDL (Interface Definition Language).
- Utilitas winedump telah menambahkan dukungan untuk menyimpan dump tabel minidump, informasi pengecualian C++, dan sumber daya typelib.
- Miscellanea
- Peningkatan dukungan untuk protokol pertukaran kunci Diffie-Hellman (DH). Menambahkan kemampuan untuk mengkonfigurasi dan menerima parameter DH. Pengendali yang diterapkan untuk membuat pasangan kunci publik dan privat.
- Penggunaan padding tambahan OAEP (Optimal Asymmetric Encryption Padding) bersama dengan algoritma RSA disediakan.
- DirectPlay API mendukung sesi jaringan.
- Penanganan status input/output asinkron yang lebih baik saat bekerja dalam mode WoW64 (64-bit) Windows-di-Windows), yang memungkinkan Anda menjalankan sistem 32-bit. Windows-aplikasi pada sistem Unix 64-bit.
- Menambahkan dukungan untuk memuat driver ODBC untuk DBMS yang dikompilasi untuk Windows.
- Untuk platform ARM, dukungan penuh untuk RPC/COM, C++ RTTI (Run-Time Type Information) dan pengecualian C++ diterapkan.
- Pada runtime C, fungsi ANSI mengimplementasikan dukungan untuk pengkodean UTF-8.
- Kemampuan mesin MSHTML telah diperluas. Menambahkan dukungan untuk prototipe dan konstruktor objek. Antarmuka pengikatan objek baru untuk MSHTML telah ditambahkan ke mesin JavaScript. Fungsi bawaan MSHTML telah dikonversi menjadi objek JavaScript yang valid. Pengumpulan sampah JavaScript yang ditingkatkan untuk mencakup semua konteks eksekusi skrip di thread. Menambahkan dukungan untuk objek JavaScript ArrayBuffer dan DataView.
- Dukungan untuk analisis statis menggunakan laporan pengujian Clang dan JUnit telah ditambahkan ke sistem integrasi berkelanjutan berdasarkan Gitlab.
- Pustaka Capstone 5.0.3 dibangun ke dalam paket, yang melaluinya pembongkaran diimplementasikan dalam debugger WineDb.
- Komponen diperbarui ke versi baru: Vkd3d 1.14, Faudio 24.10, FluidSynth 2.4.0, LDAP 2.5.18, LCMS2 2.16, LibJpeg 9f, LibMPG123 1.32.9, LibPng 1.6.44, LibTiff 4.7.0, LibXml2 2.12.8, LibXslt 1.1.42 dan Zlib 1.3.1.
Sumber: opennet.ru
