Efter ett Ă„rs utveckling och 25 experimentella versioner presenteras den stabila versionen av den öppna implementeringen av Win32 API â Wine 11.0, som innehĂ„ller mer Ă€n 6300 förĂ€ndringar och 600 buggfixar. Bland de viktigaste prestationerna i den nya versionen framhĂ€vs den fullstĂ€ndiga stödet för NTSYNC, implementeringen av mekanismen Reparse Point och anvĂ€ndningen av den nya WoW64-arkitekturen.
I Wine bekrÀftas fullstÀndig funktionalitet för 5419 Windows-program (jÀmfört med 5372 för ett Är sedan, 5336 för tvÄ Är sedan och 5266 för tre Är sedan); ytterligare 4500 program (4435 för ett Är sedan, 4397 för tvÄ Är sedan, 4370 för tre Är sedan) fungerar utmÀrkt med ytterligare instÀllningar och externa DLL:er. För 4086 program (4020 för ett Är sedan, 3943 för tvÄ Är sedan, 3888 för tre Är sedan) observeras smÄ problem i driften som inte hindrar anvÀndningen av huvudfunktionerna i applikationerna.
Nyckelinnovationer i Wine 11.0:
- Fullt stöd för ntsync-drivrutinen, som avsevÀrt ökar prestandan för Windows-spel som körs via Wine. Drivrutinen ingÄr i Linux-kÀrnan sedan version 6.14 och implementerar den symboliska enheten /dev/ntsync och en uppsÀttning primitiva för synkronisering som anvÀnds i Windows NT-kÀrnan. à tskilliga prestandaförbÀttringar uppnÄs genom att eliminera overheaden relaterad till anvÀndning av RPC i anvÀndarutrymmet.
- Möjlighet att stÀlla in trÄdprioriteter i Linux och macOS har lagts till.
- I ntdll har API:et för synkronisering "Synchronization barriers" lagts till, vilket tillÄter paus av flera trÄdar tills en viss exekveringspunkt nÄs i alla trÄdar (till exempel att vÀnta pÄ att alla trÄdar ska nÄ en viss fas vid parallell körning av samma kod).
- Den nya implementationen av WoW64 (64-bit Windows-on-Windows) har nu blivit helt stödd, vilket gör det möjligt att köra 32-bitars Windows-applikationer i 64-bitars Unix-system. Till skillnad frÄn den gamla WoW64-implementationen, dÀr 32-bitars applikationer kördes i 32-bitars Unix-processer, möjliggör den nya WoW64 körning av 32-bitars kod inne i en 64-bitars process. Stödet för körning av 16-bitars applikationer i WoW64-lÀget har ocksÄ implementerats.
I alla moduler som interagerar med Unix-bibliotek anvÀnds WoW64-systemanropskonverterare (thunk), vilket möjliggör för 32-bitarsmoduler i PE-format att komma Ät 64-bitars Unix-bibliotek. Möjligheten att köra gamla WoW64-installationer i det nya lÀget har lagts till genom att stÀlla in miljövariabeln "WINEARCH=wow64". 32-bitarsprefix som skapas nÀr WINEARCH=win32 stÀlls in har förklarats som förÄldrade och stöds inte i det nya WoW64-lÀget. Den separata wine64-laddaren har tagits bort, istÀllet anvÀnds en universell laddare som bestÀmmer lÀget baserat pÄ den körda filens bitdjup.
- KÀrnan (Windows kernelgrÀnssnitt)
- En mekanism för Reparse Point har implementerats, vilket gör det möjligt att fÀsta ytterligare data som identifieras genom taggar till filer och kataloger. Typerna av Reparse Point som stöds inkluderar symboliska lÀnkar och monteringspunkter.
- För att öka prestanda vid övervakning av skrivoperationer i minnet har en mekanism kallad UFFD (userfaultfd) anvÀnts, vilket ger möjlighet att skapa hanterare för ÄtgÀrder mot icke tilldelade minnessidor (page faults) i anvÀndarutrymmet. I genomförda tester gjorde anvÀndning av UFFD att inlÀsningstiderna för nivÄer i spelet "Streets of Rage 4" minskade frÄn 6-8 sekunder till 1.5-2 sekunder, vilket motsvarar prestanda vid uppstart pÄ Windows-plattformen.
- Numren för NT-systemanrop har aktiverats, identiska med de senaste versionerna av Windows, vilket Àr nödvÀndigt för att stödja applikationer som anvÀnder hÄrdkodade nummer för systemanrop.
- PÄ ARM64-system har möjlighet att simulera minnessidor pÄ 4K implementerats i miljöer med Linux-kÀrnor som anvÀnder större minnessidor (16K eller 64K). Simuleringen möjliggör körning av enklare applikationer, men för mer komplexa program rekommenderas anvÀndning av Linux-kÀrnor med 4-kilobytes minnessidor.
- Grafiksubsystem
- PÄ X11-system (winex11) anvÀnds som standard en rendering backend för OpenGL som anvÀnder EGL. GLX-backend har förklarats som förÄldrad, men Àr fortfarande tillgÀnglig som en reservlösning och anvÀnds vid brist pÄ EGL.
- Inledande stöd för D3DKMT-objekt har lagts till, vilket ger lÄg nivÄ Ätkomst till grafiska enheter frÄn anvÀndarutrymmet. Vulkan-tillÀgg har implementerats sÄsom VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 och VK_KHR_win32_keyed_mutex.
- I WoW64-lÀge (64-bit Windows-on-Windows) har stöd för minnesmappning för OpenGL implementerats med hjÀlp av Vulkan-API, vilket möjliggör snabbare drift av 32-bitars OpenGL-applikationer i Wine.
- Emulering av frambuffer för OpenGL har implementerats pÄ plattformar utan inbyggt stöd för detta.
- Stöd för Vulkan-specifikationen 1.4.335 har lagts till i drivrutinen för grafiska API:er Vulkan.
- Stödet för metadata i bildfiler har utökats i biblioteket WindowsCodecs, och stöd för konvertering mellan heltalsfÀrgsrepresentationer och flyttalsformat har implementerats.
- Beroendet av OSMesa-biblioteket (Off-screen Mesa) har tagits bort. Möjligheten att rita bitmappar via OpenGL med hjÀlp av hÄrdvaruaccelererad OpenGL-runtime har implementerats.
- Integration med skrivbordet
- I drivrutinen winewayland.drv, som gör det möjligt att anvÀnda Wine i miljöer baserade pÄ Wayland-protokollet utan att anvÀnda XWayland och X11-komponenter, har stöd för urklipp, inmatningsmetoder, icke-rektangulÀra fönster och transparens implementerats.
- Integration med X11 har förbÀttrats: förfrÄgningar om fönsteraktivering har skickats till fönsterhanteraren och EWMH-protokollet har anvÀnts för att samordna statusen för aktiva X11- och Win32-fönster.
- Stöd för exklusivt helskÀrmslÀge har implementerats. Stödet för helskÀrmslÀge i D3D har förbÀttrats, liksom funktionen för Àldre spel baserade pÄ DDraw.
- Prestandan för vissa fönsterfunktioner har förbÀttrats. Delad minne har anvÀnts för interprocesskommunikation.
- Direct3D
- I Direct3D 11 har hÄrdvaruaccelererat dekodning av videoformatet H.264 lagts till, implementerat via Vulkan-grafik-API.
- Minmax-filtrering av texturer har implementerats i Direct3D 11, med anvÀndning av OpenGL-tillÀgget GL_ARB_texture_filter_minmax eller Vulkan-tillÀgget VK_EXT_sampler_filter_minmax.
- Texturladdningsfunktioner har implementerats i Direct3D 11.
- MÄnga av Direct3Ds funktioner för rendering via Vulkan har implementerats, sÄsom vertexblandning, platt skuggning, anvÀndardefinierade avskÀrningsplan och olika resursformat.
- I den inbyggda versionen av vkd3d-shader har stödet för modellerna 1, 2 och 3 av shaders förbÀttrats.
- I metoden D3DXSaveSurfaceToFileInMemory har stöd för PNG-, JPEG- och BMP-bilder implementerats.
- Stödet för komprimering och uppackning av formaten BC4 och BC5, samt generering av MIP-nivÄer (MipMap) vid inlÀsning av texturer, har implementerats i Direct3D 10 och 11.
- Metoderna ID3DXEffect::SetRawValue() och ID3DXSkinInfo::UpdateSkinnedMesh() har implementerats.
- Inmatningsenheter
- Kompatibiliteten med joystickar har förbÀttrats genom anvÀndning av hidraw backend.
- Stödet för vibrationsfeedbackeffekter (Force feedback) har förbÀttrats vid anvÀndning av spelratts och joystickar.
- Stödet för spelkontroller i API Windows.Gaming.Input har förbÀttrats och Àven vid anvÀndning av evdev backend.
- I kontrollpanelen för spelkontroller har en flik för att konfigurera API Windows.Gaming.Input lagts till.
- Kompatibiliteten hos DirectInput med Àldre spel har ökat.
- Bluetooth
- Bluetooth-drivrutinen har fÄtt möjlighet till scanning, upptÀcktsinstÀllning och enhetssammanfogning.
- Stödet för Bluetooth Low Energy-tjÀnster har lagts till.
- Applikationer har fÄtt möjligheten att skapa lÄgnivÄ RFCOMM-anslutningar med externa enheter med hjÀlp av Winsock API.
- Stöd för skannrar.
- Stödet för API TWAIN 2.0 har implementerats, vilket möjliggör tillgÄng till skannrar frÄn 64-bitarsapplikationer.
- Stödet för komponenten DAT_IMAGENATIVEXFER för bildöverföring frÄn skannrar till applikationer har implementerats.
- Val av skanner och skannerns instÀllningar sparas i registret.
- Stöd för flersidigt skanning och automatisk dokumentmatare har lagts till.
- Applikationen blockeras inte lÀngre under anrop av skanningsgrÀnssnittet.
- Stöd för nedladdning av inhemska Windows-drivrutiner för skannrar har lagts till.
- Internationalisering
- Generering av lokaliseringsdatabaser i formatet locale.nls har sÀkerstÀllts frÄn Unicode CLDR-databasen (Unicode Common Locale Data Repository) version 48. Ytterligare sprÄkstöd har lagts till för 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 och suz-Sunu-NP.
- Unicode-teckentabellerna har uppdaterats till standardversion 17.0.0. Tidszonbasen har ocksÄ uppdaterats.
- NĂ€tverksfunktioner
- I MSHTML-motorn har webblÀsartillÀgget sÀkerstÀllt arbete med elementattribut som fullstÀndiga DOM-noder i standardskompatibilitetslÀge. DOMParser-objekt, XDomainRequest och msCrypto har implementerats.
- Stöd för typade arrayer har lagts till i JavaScript.
- För ICMPv6 har en ping-kommando implementerats.
- DB
- Stödet för att skriva Àndringar till databaser har lagts till i MSADO-biblioteket (ActiveX Data Objects). De flesta funktionerna i Recordset-objektet har implementerats.
- Stödet för ANSI win32-drivrutiner i odbc32-biblioteket har förbÀttrats och dessa Àr inte avsedda för anvÀndning med Unicode. Funktioner som SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() och QLColumnsW() har implementerats.
- Inbyggda applikationer
- En flik för att konfigurera standard MIDI-enheten har lagts till i WineCfg.
- I kommandon cmd har automatisk komplettering av filnamn implementerats i interaktivt lÀge, stöd för komplexa kommandon har lagts till och kommandot «mklink /j» för att skapa Reparse Point har införts.
- I verktyget conhost (Console Hosting) har stöd för att hÀmta historik med knapparna F1 och F3 lagts till.
- Kommandona timeout, runas och subst har implementerats.
- I verktyget find har alternativet «/c» för att visa antalet trÀffar och «/i» för att matcha utan att ta hÀnsyn till versaler lagts till.
- I verktyget whoami har möjligheten att konfigurera utdataformatet lagts till.
- Olika
- I implementationen av sprÄk för grÀnssnittsbeskrivning WIDL (Wine Interface Definition Language) har stöd för generation av Windows Runtime (WinRT) metadata lagts till. Generering och installation av WinMD (Windows Metadata) filer för WinRT (Windows Runtime) API har sÀkerstÀllts.
- I verktyget winedump har stöd för dumpning av MUI-resurser, systemanropsnummer, inbyggda NE-moduler och stora PDB-filer (> 4 GB) lagts till.
- Implementation av Common Control har refaktorerats, och COMCTL32-biblioteket har delats upp i separata moduler för versioner 5 och 6.
- I BCrypt har stöd för standardspecifikationen för nyckelgenerering PBKDF2 lagts till.
- Stöd för katalogerna UserProgramFiles, AccountPictures och Screenshots har lagts till.
- Biblioteken LLVM Compiler-RT 8.0.1 och TomCrypt 1.18.2 har integrerats. För att bestÀmma CPU pÄ FreeBSD-plattformen har HwLoc-biblioteket anvÀnts.
- Komponenterna 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 och LibXslt 1.1.43 har uppdaterats till nya versioner.
KĂ€lla: opennet.ru
