Pas një vit zhvillimi dhe 25 versione eksperimentale, është prezantuar lëshimi stabil i implementimit të hapur të Win32 API - Wine 11.0, i cili përmban më shumë se 6300 ndryshime dhe 600 rregullime gabimesh. Nga arritjet kryesore në këtë version, është e rëndësishme të theksohet mbështetje e plotë për NTSYNC, realizimi i mekanizmit Reparse Point dhe angazhimi i një implementimi të ri të arkitekturës WoW64.
Në Wine është konfirmuar funksionimi i plotë i 5419 programeve për Windows (një vit më parë 5372, dy vjet më parë 5336, tre vjet më parë 5266), 4500 programe të tjera (një vit më parë 4435, dy vjet më parë 4397, tre vjet më parë 4370) funksionojnë shkëlqyer me konfigurime shtesë dhe DLL të jashtme. Tek 4086 programeve (një vit më parë 4020, dy vjet më parë 3943, tre vjet më parë 3888) vërehen probleme të vogla në funksionim, të cilat nuk pengojnë përdorimin e funksioneve kryesore të aplikacioneve.
Novitetet kryesore në Wine 11.0:
- Mbështetje e plotë për drejtuesin ntsync, i cili ndihmon në rritjen e ndjeshme të performancës së lojërave në Windows që ekzekutohen përmes Wine. Drejtuesi është pjesë e bërthamës Linux që nga versioni 6.14 dhe implementon pajisjen simbolike /dev/ntsync dhe një grup primitiverësh për sinkronizim që përdoren në bërthamën Windows NT. Rritja e konsiderueshme e performancës arrihet përmes eliminimit të ngarkesave që lidhen me përdorimin e RPC në hapësirën e përdoruesit.
- Shtuar mundësia për të konfiguruar prioritetet e proceseve në Linux dhe macOS.
- Në ntdll është shtuar API për sinkronizim «Synchronization barriers», i cili ndihmon në pezullimin e ekzekutimit të disa proceseve deri në arritjen e një pike të caktuar ekzekutimi në të gjitha proceset (për shembull, të presim që të gjitha proceset të arrijnë një fazë të caktuar gjatë ekzekutimit paralel të të njëjtit kod).
- E rekuperuar nĂ« kategorinĂ« e aplikacioneve tĂ« plota tĂ« mbĂ«shtetur, implementimi i ri i shtresĂ«s WoW64 (Windows-on-Windows 64-bit) lejon operimin e aplikacioneve Windows 32-bit nĂ« sisteme Unix 64-bit. Ndryshe nga implementimi i vjetĂ«r i WoW64, ku aplikacionet 32-bit ishin tĂ« integruara nĂ« procese 32-bit Unix, WoW64 i ri mundĂ«son ekzekutimin e kodit 32-bit brenda njĂ« procesi 64-bit. ĂshtĂ« implementuar mbĂ«shtetje pĂ«r ekzekutimin e aplikacioneve 16-bit nĂ« modalitetin WoW64.
NĂ« tĂ« gjitha modulat qĂ« komunikojnĂ« me bibliotekat Unix, janĂ« angazhuar konvertuesit e sistemit tĂ« thirrjeve WoW64 (thunk), tĂ« cilĂ«t lejojnĂ« modulave 32-bit nĂ« formatin PE qĂ« tĂ« aksesojnĂ« bibliotekat 64-bit Unix. ĂshtĂ« shtuar mundĂ«sia pĂ«r tĂ« ekzekutuar instancat e vjetra WoW64 nĂ« mĂ«nyrĂ«n e re pĂ«rmes caktimit tĂ« variablĂ«s mjedisore "WINEARCH=wow64". Prefikset 32-bit tĂ« krijuara kur caktohet WINEARCH=win32 janĂ« shpallur tĂ« vjetra dhe nuk mbĂ«shteten nĂ« modalitetin e ri WoW64. ĂshtĂ« eliminuar ngarkuesi i veçantĂ« wine64, pĂ«rkundrazi Ă«shtĂ« angazhuar njĂ« ngarkues universali qĂ« pĂ«rcakton modalitetin sipas bitit tĂ« skedarit tĂ« ekzekutueshĂ«m.
- Kernel (ndërfaqet e kernelit Windows)
- Mekanizmi Reparse Point është zbatuar, i cili lejon lidhjen e të dhënave shtesë me skedarë dhe katalogë, të identifikueshme përmes etiketave. Mbështeten lloje të tilla të Reparse Point si lidhjet simbolike dhe pikët e montimit.
- PĂ«r tĂ« pĂ«rmirĂ«suar performancĂ«n e ndjekjes sĂ« operacioneve tĂ« shkruajtur nĂ« kujtesĂ«, Ă«shtĂ« аĐșŃĐžĐČizuar mekanizmi UFFD (userfaultfd), i cili ofron mundĂ«sinĂ« pĂ«r tĂ« krijuar trajtesa pĂ«r thirrjet nĂ« faqe pa pĂ«rfaqĂ«sim (page faults) nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit. NĂ« testet e kryera, pĂ«rdorimi i UFFD ka lejuar tĂ« reduktojĂ« kohĂ«n e ngarkimit tĂ« niveleve nĂ« lojĂ«n "Streets of Rage 4" nga 6-8 sekonda nĂ« 1.5-2 sekonda, qĂ« pĂ«rkon me performancĂ«n e nisjes nĂ« platformĂ«n Windows.
- Janë aktivizuar numrat e thirrjeve sistemike NT, të cilët janë identikë me versionet e fundit të Windows, që është e nevojshme për mbështetje të aplikacioneve që përdorin numra të thirrjeve sistemike të coduar.
- Në sistemet ARM64 është implementuar mundësia e simuluar e faqeve të memories me madhësi 4K në mjedise me bërthama Linux që përdorin faqe memory më të mëdha (16K ose 64K). Simulimi lejon ekzekutimin e aplikacioneve të thjeshta, ndërsa për programe më komplekse rekomandohet të përdoren bërthamat Linux me faqe memories 4-kilobajtëshe.
- Nënshkrimi grafik
- Në sistemet X11 (winex11) për OpenGL, për default është aktivizuar backend-i i rendering-ut që përdor EGL. Backend-i GLX është shpallur në dekompozim, por ende qëndron i disponueshëm si një rezervë dhe përdoret në mungesë të EGL.
- ĂshtĂ« shtuar mbĂ«shtetje fillestare pĂ«r objektet D3DKMT, tĂ« cilat ofrojnĂ« akses nĂ« nivel tĂ« ulĂ«t nĂ« pajisjet grafike nga hapĂ«sira e pĂ«rdoruesit. JanĂ« implementuar zgjerimet Vulkan VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 dhe VK_KHR_win32_keyed_mutex.
- Në modin WoW64 (64-bit Windows-on-Windows) është implementuar mbështetje për mapimin e memories për OpenGL me ndihmën e API Vulkan, që lejon përshpejtimin e funksionimit të aplikacioneve 32-bit OpenGL në Wine.
- ĂshtĂ« realizuar emulimi i buferit tĂ« paraqitjes (front buffer) pĂ«r OpenGL nĂ« platforma pa mbĂ«shtetje tĂ« integruar pĂ«r tĂ«.
- Në driver-in për API-në grafike Vulkan është shtuar mbështetje për specifikimin Vulkan 1.4.335.
- Në paketën e bibliotekave WindowsCodecs, është zgjeruar mbështetje për meta të dhënave në skedarët me imazhe, si dhe është realizuar mbështetje për konvertimin midis formateve të ngjyrave me numra të plotë dhe formateve me pikë flutuese.
- ĂshtĂ« eliminuar varĂ«sia nga biblioteka OSMesa (Off-screen Mesa). ĂshtĂ« realizuar mundĂ«sia pĂ«r tĂ« vizatuar imazhe pĂ«rmes OpenGL duke pĂ«rdorur runtime tĂ« acceleruar nga hardueri pĂ«r OpenGL.
- Integrimi me desktopin
- Në drejtuesin winewayland.drv, i cili lejon përdorimin e Wine në mjedise të bazuara në protokollin Wayland pa përdorur XWayland dhe komponentët X11, është realizuar mbështetje për kopjimin e dosjeve, metodat e hyrjes, dritaret jo-rekord dhe transparencën.
- ĂshtĂ« pĂ«rmirĂ«suar integrimi me X11: Ă«shtĂ« siguruar dĂ«rgimi i kĂ«rkesave pĂ«r aktivizimin e dritareve te menaxheri i dritareve dhe Ă«shtĂ« pĂ«rfshirĂ« protokolli EWMH pĂ«r koordinimin e gjendjes sĂ« dritareve aktive X11 dhe Win32.
- ĂshtĂ« realizuar mbĂ«shtetje pĂ«r modalitet ekskluziv me tĂ« gjithĂ« ekranin. ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetje pĂ«r modalitetin me tĂ« gjithĂ« ekranin nĂ« D3D dhe Ă«shtĂ« pĂ«rmirĂ«suar funksionimi i lojĂ«rave tĂ« vjetra bazuar nĂ« DDraw.
- ĂshtĂ« rritur performanca e disa funksioneve tĂ« punĂ«s me dritaret. PĂ«r ndĂ«rveprimin midis proceseve Ă«shtĂ« pĂ«rdorur memoria e ndarĂ«.
- Direct3D
- Në Direct3D 11 është shtuar mbështetje për përshpejtimin hardueror të dekodimit të videove në formatin H.264, e realizuar përmes API grafik Vulkan.
- Në Direct3D 11 është realizuar mbështetje për filtrimin minmax të teksturave, duke përdorur zgjerimin OpenGL GL_ARB_texture_filter_minmax ose zgjerimin Vulkan VK_EXT_sampler_filter_minmax.
- Në Direct3D 11 janë realizuar funksionet e ngarkimit të teksturave.
- Janë realizuar një sërë mundësish të mëdha të Direct3D për vizatimin përmes Vulkan, të tilla si përzierja e majave, hijezimi i sheshtë, plane personale të prerjes dhe formate të ndryshme burimesh.
- Në kopjen e integruar të vkd3d-shader është përmirësuar mbështetja për modelet e shaderëve 1, 2 dhe 3.
- Në metodën D3DXSaveSurfaceToFileInMemory është realizuar mbështetje për imazhet PNG, JPEG dhe BMP.
- Në Direct3D 10 dhe 11 është realizuar mbështetje për kompaktimin dhe dekompaktimin e formateve BC4 dhe BC5, si dhe gjenerimin e nivele MIP (MipMap) gjatë ngarkimit të teksturave.
- Janë realizuar metodat ID3DXEffect::SetRawValue() dhe ID3DXSkinInfo::UpdateSkinnedMesh().
- Pajisjet hyrëse
- ĂshtĂ« pĂ«rmirĂ«suar pĂ«rputhshmĂ«ria me joystick-Ă«t, duke pĂ«rdorur backend-in hidraw.
- ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r efektin e vibrimit (Force feedback) gjatĂ« pĂ«rdorimit tĂ« volanĂ«ve dhe joystick-Ă«ve tĂ« lojĂ«rave.
- ĂshtĂ« pĂ«rmirĂ«suar mbĂ«shtetja pĂ«r gamepad nĂ« API Windows.Gaming.Input dhe gjatĂ« pĂ«rdorimit tĂ« backend-it evdev.
- Në aplikacionin e menaxhimit të kontrolleve të lojërave është shtuar një skedë për konfigurimin e API Windows.Gaming.Input.
- Shtuar kompatibiliteti i DirectInput me lojërat e vjetra.
- Bluetooth
- Në driverin për Bluetooth është shtuar mundësia për skanim, konfigurimin e zbulimit dhe çiftimin e pajisjeve.
- Shtuar mbështetje për shërbimet Bluetooth Low Energy.
- Aplikacionet e kanë mundësinë të krijojnë lidhje RFCOMM të nivelit të ulët me pajisje të jashtme, duke përdorur API Winsock.
- Mbështetje për skanerët.
- Implementuar mbështetje për API TWAIN 2.0, e cila lejon aksesin në skanerë nga aplikacione 64-bit.
- Realizuar mbështetje për komponentin DAT_IMAGENATIVEXFER për transferimin e imazhit nga skaneri në aplikacion.
- Siguruar ruajtjen në regjistër të skanerit dhe cilësimeve të skanerit të zgjedhur.
- Shtuar mbështetje për skanimin shumëfaqësh dhe dokumenteve me autofurnizim.
- Ndalur bllokimin e aplikacionit gjatë thirrjes së ndërfaqes së skanimit.
- Shtuar mbështetje për ngarkimin e drejtuesve native të Windows për skanerët.
- Internacionalizimi
- Generimi i databazĂ«s sĂ« lokaliteteve nĂ« formatin locale.nls nga databaza Unicode CLDR (Depojia e tĂ« DhĂ«nave tĂ« Zakonshme Unicode) versioni 48 Ă«shtĂ« siguruar. ĂshtĂ« shtuar mbĂ«shtetje pĂ«r lokalitetet e tjera 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 dhe suz-Sunu-NP.
- Të dhënat e simboleve Unicode janë përditësuar deri në versionin 17.0.0. Baza e të dhënave për zona të kohës është përditësuar.
- Aftësitë rrjetërore
- Në motorin MSHTML në modalitetin e përputhshmërisë me standardet, është siguruar funksionimi me atributet e elementeve si nyje të plota DOM. Janë implementuar objektet DOMParser, XDomainRequest dhe msCrypto.
- Në JavaScript, është shtuar mbështetje për array-të e tipizuara.
- Për ICMPv6 është implementuar komanda ping.
- BD
- Në bibliotekën MSADO (ActiveX Data Objects) është shtuar mbështetje për regjistrimin e ndryshimeve në DB. Janë implementuar shumica e funksioneve të objektit Recordset.
- Në bibliotekën odbc32 është përmirësuar mbështetja për drejtuesit ANSI win32, që nuk janë optimizuar për punë me Unicode. Janë implementuar funksionet SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() dhe QLColumnsW().
- Aplikacionet e integruara
- Në WineCfg është shtuar një skedë për konfigurimin e pajisjes MIDI të paracaktuar.
- Në utilitarin cmd është realizuar autocompletimi i emrave të skedarëve në modalitetin interaktiv, është shtuar mbështetje për instruktionet komplekse dhe është realizuar komanda 'mklink /j' për krijimin e Reparse Point.
- Në utilitarin conhost (Console Hosting) është shtuar mbështetje për marrjen e historisë duke shtypur çelësat F1 dhe F3.
- Janë realizuar komandat timeout, runas dhe subst.
- Në utilitarin find janë shtuar opsionet "/c" për të treguar numrin e përputhjeve dhe "/i" për përputhje pa marrë parasysh shkronjat e mëdha apo të vogla.
- Në utilitarin whoami është shtuar mundësia për të konfigurimin e formatit të daljes.
- TĂ« tjera
- NĂ« realizimin e gjuhĂ«s sĂ« pĂ«rshkrimit tĂ« ndĂ«rfaqes WIDL (Wine Interface Definition Language) Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r gjenerimin e metadatave Windows Runtime (WinRT). ĂshtĂ« siguruar gjenerimi dhe vendosja e skedarĂ«ve WinMD (Windows Metadata) pĂ«r API-nĂ« WinRT (Windows Runtime).
- Në utilitarin winedump është shtuar mbështetje për dump-in e burimeve MUI, numrat e thirrjeve sistemore, modulet NE të ndërtuara dhe skedarët e mëdhenj PDB (> 4 GB).
- ĂshtĂ« kryer refaktorizimi i realizimit tĂ« kontrollit tĂ« zakonshĂ«m, biblioteka COMCTL32 Ă«shtĂ« ndarĂ« nĂ« module tĂ« veçanta pĂ«r versionet 5 dhe 6.
- Në BCrypt është shtuar mbështetje për standardin e formimit të çelësit PBKDF2.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r katalogĂ«t UserProgramFiles, AccountPictures dhe Screenshots.
- Në përbërje janë integruar bibliotekat LLVM Compiler-RT 8.0.1 dhe TomCrypt 1.18.2. Për të identifikuar CPU në platformën FreeBSD është përdorur biblioteka HwLoc.
- Komponentët 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 janë azhurnuar në versionet e reja.
Burimi: opennet.ru
