Po metų kūrimo ir 25 eksperimentinių versijų išleista stabili atvirojo kodo „Win32“ API versija „Wine 11.0“. Joje atlikta daugiau nei 6300 pakeitimų ir ištaisyta 600 klaidų. Svarbiausi naujosios versijos patobulinimai apima visišką NTSYNC palaikymą, „Reparse Point“ mechanizmo įdiegimą ir naujos „WoW64“ architektūros įgyvendinimo naudojimą.
Wine patvirtino, kad visiškai veikia 5419 „Windows“ skirtos programos (prieš metus – 5372, prieš dvejus – 5336, prieš trejus – 5266), dar 4500 programos (prieš metus – 4435, prieš dvejus – 4397, prieš trejus – 4370) puikiai veikia su papildomi nustatymai ir išorinis DLL. 4086 programos (prieš metus – 4020, prieš dvejus – 3943, prieš trejus – 3888) turi nedidelių veikimo problemų, kurios netrukdo naudotis pagrindinėmis aplikacijų funkcijomis.
Pagrindinės Wine 11.0 naujovės:
- Visiškas „ntsync“ tvarkyklės palaikymas, kuris žymiai pagerina „Windows“ žaidimų, veikiančių su „Wine“, našumą. Tvarkyklė įtraukta į „Linux“ branduolį nuo 6.14 versijos ir įgyvendina /dev/ntsync simbolių įrenginį bei sinchronizavimo primityvų rinkinį, naudojamą „Windows NT“ branduolyje. Reikšmingas našumo padidėjimas pasiekiamas pašalinant su RPC naudojimu vartotojo erdvėje susijusias pridėtines išlaidas.
- Pridėta galimybė konfigūruoti gijų prioritetus „Linux“ ir „macOS“.
- Į ntdll buvo pridėta API „Sinchronizavimo barjerai“, leidžianti pristabdyti kelių gijų vykdymą, kol visose gijose bus pasiektas tam tikras vykdymo taškas (pavyzdžiui, palaukti, kol visos gijos pasieks tam tikrą etapą, kai tas pats kodas vykdomas lygiagrečiai).
- Naujoji „WoW64“ (64 bitų „Windows-on-Windows“) versija, leidžianti 32 bitų „Windows“ programoms veikti 64 bitų „Unix“ sistemose, buvo visiškai palaikoma. Skirtingai nuo ankstesnės „WoW64“ versijos, kuri vykdė 32 bitų programas 32 bitų „Unix“ procesuose, naujoji „WoW64“ versija leidžia 32 bitų kodui veikti 64 bitų procese. Įdiegtas palaikymas 16 bitų programų paleidimui „WoW64“ režimu.
Visi moduliai, pasiekiantys „Unix“ bibliotekas, naudoja „WoW64“ sisteminių iškvietimų vertėjus (thunkus), leidžiančius 32 bitų moduliams PE formatu pasiekti 64 bitų „Unix“ bibliotekas. Galimybė paleisti senas „WoW64“ instaliacijas nauju režimu buvo pridėta nustatant aplinkos kintamąjį „WINEARCH=wow64“. 32 bitų prefiksai, sukurti nustatant WINEARCH=win32, yra nebenaudojami ir nepalaikomi naujajame „WoW64“ režime. Atskiras „wine64“ įkroviklis buvo pašalintas, pakeistas universaliu įkrovikliu, kuris nustato režimą pagal vykdomo failo bitų skaičių.
- Branduolys („Windows“ branduolio sąsajos)
- Įdiegtas pakartotinio analizavimo taškų mechanizmas, leidžiantis prie failų ir katalogų pridėti papildomų duomenų, identifikuojamų žymėmis. Palaikomi pakartotinio analizavimo taškų tipai, pvz., simbolinės nuorodos ir prijungimo taškai.
- Siekiant pagerinti atminties įrašymo sekimo našumą, naudojamas UFFD (userfaultfd) mechanizmas, leidžiantis kurti tvarkykles nepaskirstytoms atminties puslapių klaidoms vartotojo erdvėje. Atliktuose bandymuose UFFD naudojimas sutrumpino lygių įkėlimo laiką „Streets of Rage 4“ nuo 6–8 sekundžių iki 1.5–2 sekundžių, o tai atitinka „Windows“ paleidimo laiką.
- Naudojami NT sistemos skambučių numeriai yra identiški naujausių „Windows“ versijų numeriams, o tai būtina norint palaikyti programas, kurios naudoja užkoduotus sistemos skambučių numerius.
- ARM64 sistemos dabar palaiko 4K atminties puslapių modeliavimą aplinkose su „Linux“ branduoliais, kurie naudoja didesnius atminties puslapius (16K arba 64K). Ši modeliavimo sistema leidžia naudoti paprastas programas, tačiau sudėtingesnėms programoms rekomenduojami „Linux“ branduoliai su 4K atminties puslapiais.
- Grafikos posistemis
- X11 sistemose („winex11“) numatytoji „OpenGL“ vaizdavimo sistema naudoja EGL. GLX sistema nebenaudojama, tačiau ji vis dar prieinama kaip atsarginė versija ir naudojama, kai EGL negalimas.
- Pridėtas pradinis D3DKMT objektų, kurie suteikia žemo lygio prieigą prie grafikos įrenginių iš vartotojo erdvės, palaikymas. Įdiegti „Vulkan“ plėtiniai VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 ir VK_KHR_win32_keyed_mutex.
- „WoW64“ (64 bitų „Windows-on-Windows“) režimu, naudojant „Vulkan“ API, įdiegtas atminties susiejimo su „OpenGL“ palaikymas, leidžiantis pagreitinti 32 bitų „OpenGL“ programas „Wine“ programoje.
- Įdiegta priekinio buferio emuliacija OpenGL platformose be vietinio palaikymo.
- „Vulkan“ grafikos API tvarkyklė atnaujinta, kad palaikytų „Vulkan 1.4.335“ specifikaciją.
- „WindowsCodecs“ bibliotekų rinkinys išplečia metaduomenų palaikymą vaizdo failuose ir prideda palaikymą konvertavimui tarp sveikųjų skaičių ir slankiojo kablelio spalvų formatų.
- Priklausomybė nuo OSMesa (Off-screen Mesa) bibliotekos pašalinta. Bitmap atvaizdavimas per OpenGL įdiegtas naudojant aparatinės įrangos spartinamą OpenGL vykdymo aplinką.
- Stalinio kompiuterio integravimas
- „winewayland.drv“ tvarkyklė, leidžianti naudoti „Wine“ „Wayland“ pagrindu sukurtose aplinkose nenaudojant „XWayland“ ar „X11“ komponentų, palaiko iškarpinę, įvesties metodus, ne stačiakampius langus ir skaidrumą.
- Patobulinta integracija su X11: dabar palaikomas langų aktyvinimo užklausų siuntimas į langų tvarkyklę, o EWMH protokolas naudojamas aktyvių X11 ir Win32 langų būsenai koordinuoti.
- Įdiegtas išskirtinio viso ekrano režimo palaikymas. Patobulintas viso ekrano palaikymas D3D ir pagerintas senesnių „DDraw“ pagrindu sukurtų žaidimų našumas.
- Pagerintas kai kurių langų funkcijų našumas. Bendra atmintis dabar naudojama tarpprocesiniam bendravimui.
- Direct3D
- „Direct3D 11“ prideda palaikymą aparatinės įrangos spartinamam H.264 vaizdo dekodavimui, įdiegtam naudojant „Vulkan“ grafikos API.
- „Direct3D 11“ įdiegia „minmax“ tekstūrų filtravimo palaikymą naudodama „OpenGL“ plėtinį „GL_ARB_texture_filter_minmax“ arba „Vulkan“ plėtinį „VK_EXT_sampler_filter_minmax“.
- „Direct3D 11“ įgyvendina tekstūrų įkėlimo funkcijas.
- Didelė dalis „Direct3D“ funkcijų buvo įdiegtos atvaizduojant per „Vulkan“, pavyzdžiui, viršūnių suliejimas, plokščias šešėliavimas, pasirinktinės kirpimo plokštumos ir įvairūs išteklių formatai.
- Integruotoje „vkd3d-shader“ kopijoje patobulintas 1, 2 ir 3 šešėlių modelių palaikymas.
- D3DXSaveSurfaceToFileInMemory metodas palaiko PNG, JPEG ir BMP vaizdus.
- „Direct3D 10“ ir „11“ versijos palaiko BC4 ir BC5 formatų glaudinimą ir dekompresiją, taip pat MIP lygių (MipMap) generavimą įkeliant tekstūras.
- Įdiegti ID3DXEffect::SetRawValue() ir ID3DXSkinInfo::UpdateSkinnedMesh() metodai.
- Įvesties įrenginiai
- Patobulintas suderinamumas su valdymo svirtimis dėl „hidraw“ vidinės dalies naudojimo.
- Patobulintas jėgos grįžtamojo ryšio efekto palaikymas naudojant žaidimų vairus ir valdymo svirtis.
- Patobulintas žaidimų pulto palaikymas „Windows.Gaming.Input“ API ir naudojant „evdev“ posistemę.
- Žaidimų valdiklių valdymo programėlėje pridėtas skirtukas, skirtas „Windows.Gaming.Input“ API konfigūravimui.
- Patobulintas „DirectInput“ suderinamumas su senesniais žaidimais.
- "Bluetooth"
- „Bluetooth“ tvarkyklėje dabar yra galimybė nuskaityti, konfigūruoti aptikimą ir susieti įrenginius.
- Pridėta „Bluetooth Low Energy“ paslaugų palaikymas.
- Programos dabar gali kurti žemo lygio RFCOMM ryšius su išoriniais įrenginiais naudodamos „Winsock“ API.
- Skenerio palaikymas
- Įdiegtas TWAIN 2.0 API palaikymas, leidžiantis pasiekti skaitytuvus iš 64 bitų programų.
- Įdiegtas DAT_IMAGENATIVEXFER komponento, skirto vaizdui perkelti iš skaitytuvo į programą, palaikymas.
- Pasirinktas skaitytuvas ir skaitytuvo nustatymai dabar išsaugoti registre.
- Pridėta kelių puslapių nuskaitymo ir automatinio dokumentų tiektuvo palaikymas.
- Nustojo blokuoti programą, kai iškviečiama nuskaitymo sąsaja.
- Pridėta palaikymas įkeliant vietines „Windows“ tvarkykles skaitytuvams.
- Internacionalizacija
- Pateiktas lokalizacijų duomenų bazių generavimas locale.nls formatu iš Unicode CLDR (Unicode Common Locale Data Repository) 48 versijos duomenų bazės. Pridėtas palaikymas papildomoms lokalizacijoms: bua-RU, bqi-IR, cop-EG, ht-HT, kek-GT, lzz-TR, mww-Hmnp-US, oka-CA, pi-Latn-GB, pms-IT, sgs-LT, suz-Deva-NP ir suz-Sunu-NP.
- Unicode simbolių lentelės buvo atnaujintos į standartinę 17.0.0 versiją. Laiko juostų duomenų bazė buvo atnaujinta.
- Tinklo ypatybės
- MSHTML variklis, standartų reikalavimus atitinkančiu režimu, palaiko elementų atributų apdorojimą kaip visaverčius DOM mazgus. Įdiegti DOMParser, XDomainRequest ir msCrypto objektai.
- „JavaScript“ dabar palaiko tipizuotus masyvus.
- „Ping“ komanda buvo įdiegta ICMPv6 protokolui.
- BD
- Į MSADO („ActiveX“ duomenų objektų) biblioteką pridėta duomenų bazės pakeitimų įrašymo palaikymo funkcija. Įdiegta dauguma įrašų rinkinio objekto funkcijų.
- „odbc32“ bibliotekoje patobulintas ANSI „Win32“ tvarkyklių, kurios nėra skirtos veikti su „Unicode“, palaikymas. Įdiegtos šios funkcijos: SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() ir QLColumnsW().
- Įterptosios programos
- „WineCfg“ dabar turi skirtuką numatytajam MIDI įrenginiui konfigūruoti.
- „Cmd“ programa dabar apima automatinį failo pavadinimo įvedimo užbaigimą interaktyviuoju režimu, sudėtingų instrukcijų palaikymą ir komandą „mklink /j“, skirtą pakartotinės analizės taškui sukurti.
- „conhost“ (konsolės talpinimo) programa dabar palaiko istorijos gavimą paspaudus F1 ir F3 klavišus.
- Įdiegtos komandos „timeout“, „runas“ ir „subst“.
- „Find“ įrankis dabar turi parinktis „/c“, kad būtų rodomas atitikmenų skaičius, ir /i, kad būtų rodomi atitikmenys, neskiriantys didžiųjų ir mažųjų raidžių.
- „whoami“ programa dabar leidžia tinkinti išvesties formatą.
- įvairenybės
- WIDL („Wine Interface Definition Language“) diegimas dabar palaiko „Windows Runtime“ („WinRT“) metaduomenų generavimą. Tai palaiko „WinMD“ („Windows“ metaduomenų) failų, skirtų „WinRT“ („Windows Runtime“) API, generavimą ir diegimą.
- „Winedump“ programa atnaujinta, kad būtų palaikomas MUI išteklių, sistemos skambučių numerių, integruotų NE modulių ir didelių PDB failų (>4 GB) išmetimas.
- „Common Control“ įgyvendinimas buvo pertvarkytas, o COMCTL32 biblioteka buvo padalinta į atskirus modulius 5 ir 6 versijoms.
- „BCrypt“ dabar palaiko PBKDF2 raktų generavimo standartą.
- Pridėtas „UserProgramFiles“, „AccountPictures“ ir „Screenshots“ katalogų palaikymas.
- Integruotos „LLVM Compiler-RT 8.0.1“ ir „TomCrypt 1.18.2“ bibliotekos. „HwLoc“ biblioteka naudojama procesoriaus aptikimui „FreeBSD“ platformoje.
- Šie komponentai atnaujinti į naujas versijas: „Vkd3d 1.18“, „Faudio 25.12“, „FluidSynth 2.4.2“, „LCMS2 2.17“, „LibMPG123 1.33.0“, „Libpng 1.6.51“, „LibTiff 4.7.1“, „LibXml2 2.12.10“, „LibXslt 1.1.43“.
Šaltinis: opennet.ru
