Stabilní release Wine 11.0

Po roce vývoje a 25 experimentálních verzích byl představen stabilní release otevřené implementace Win32 API – Wine 11.0, který zahrnuje více než 6300 změn a 600 oprav chyb. Mezi klíčové úspěchy nové verze patří plná podpora NTSYNC, implementace mechanismu Reparse Point a využití nové architektury WoW64.

V Wine byla potvrzena plná funkčnost 5419 programů pro Windows (před rokem 5372, před dvěma lety 5336, před třemi lety 5266), dalších 4500 programů (před rokem 4435, před dvěma lety 4397, před třemi lety 4370) funguje skvěle s dodatečnými nastaveními a externími DLL. U 4086 programů (před rokem 4020, před dvěma lety 3943, před třemi lety 3888) byly zaznamenány menší problémy, které nebrání používání hlavních funkcí aplikací.

Klíčové novinky Wine 11.0:

  • Plná podpora ovladače ntsync, který výrazně zvyšuje výkon Windows her spouštěných pomocí Wine. Ovladač je součástí jádra Linux od verze 6.14 a implementuje symbolické zařízení /dev/ntsync a sadu primitiv pro synchronizaci používaných v jádře Windows NT. Významného nárůstu výkonu je dosaženo díky odstranění režijních nákladů spojených s používáním RPC v uživatelském prostoru.
  • Byla přidána možnost nastavení priorit vláken v Linuxu a macOS.
  • V ntdll byl přidán API synchronizace „Synchronization barriers“, který umožňuje pozastavit vykonávání několika vláken do dosažení určitého bodu vykonávání ve všech vláknech (například čekat, až všechna vlákna dosáhnou určité fáze při paralelním vykonávání stejného kódu).
  • Nová implementace vrstvy WoW64 (64-bit Windows-on-Windows), která umožňuje spouštět 32-bitové Windows aplikace na 64-bitových Unix systémech, byla převedena do kategorie plně podporovaných. Na rozdíl od staré implementace WoW64, kde byly 32-bitové aplikace spouštěny v 32-bitových Unix procesech, nový WoW64 zajišťuje spuštění 32-bitového kódu uvnitř 64-bitového procesu. Byla implementována podpora pro spuštění 16-bitových aplikací v režimu WoW64.

    Ve všech modulech, které komunikují s Unixovými knihovnami, jsou použity převodníky systémových volání WoW64 (thunk), které umožňují 32bitovým modulům ve formátu PE komunikovat s 64bitovými Unixovými knihovnami. Byla přidána možnost spuštění starých instalací WoW64 v novém režimu nastavením proměnné prostředí "WINEARCH=wow64". 32bitové prefixy vytvářené při nastavení WINEARCH=win32 byly prohlášeny za zastaralé a nejsou podporovány v novém režimu WoW64. Byl odstraněn samostatný načítač wine64, místo něj je použita univerzální načítač, který určuje režim podle bitové šířky spouštěného souboru.

  • Jádro (rozhraní jádra Windows)
    • Byl implementován mechanismus Reparse Point, pomocí kterého lze připojovat k souborům a adresářům další data identifikovatelná pomocí tagů. Podporovány jsou typy Reparse Point, jako jsou symbolické odkazy a montážní body.
    • Pro zvýšení výkonu sledování operací zápisu do paměti byl použit mechanismus UFFD (userfaultfd), který umožňuje vytvářet obslužné programy pro přístupy k nezalokovaným stránkám paměti (page faults) ve uživatelském prostoru. V provedených testech použití UFFD umožnilo zkrátit dobu načítání úrovní ve hře "Streets of Rage 4" z 6-8 sekund na 1,5-2 sekundy, což odpovídá výkonu spuštění na platformě Windows.
    • Byly použity čísla systémových volání NT, která jsou shodná s posledními verzemi Windows, což je nezbytné pro podporu aplikací, které používají tvrdě zakódovaná čísla systémových volání.
    • Na systémech ARM64 byla implementována možnost simulace paměťových stránek o velikosti 4K v prostředích s jádry Linux, která používají větší paměťové stránky (16K nebo 64K). Simulace umožňuje spouštět jednoduché aplikace, pro složitější aplikace se doporučuje používat jádra Linux s 4kilobajtovými paměťovými stránkami.
  • Grafický subsystém
    • Na systémech X11 (winex11) je pro OpenGL ve výchozím nastavení použit backend vykreslování využívající EGL. Backend GLX byl prohlášen za zastaralý, ale zatím zůstává dostupný jako záložní a používá se v případě nedostatku EGL.
    • Byla přidána počáteční podpora objektů D3DKMT, které poskytují nízkoúrovňový přístup k grafickým zařízením z uživatelského prostoru. Byly implementovány Vulkan rozšíření VK_KHR_external_memory_win32, VK_KHR_external_semaphore_win32, VK_KHR_external_fence_win32 a VK_KHR_win32_keyed_mutex.
    • V režimu WoW64 (64-bit Windows-on-Windows) byla implementována podpora mapování paměti pro OpenGL pomocí API Vulkan, což umožňuje zrychlit výkon 32-bitových OpenGL aplikací ve Wine.
    • Byla implementována emulace zobrazení předního bufferu (front buffer) pro OpenGL na platformách bez vestavěné podpory.
    • Do ovladače grafického API Vulkan byla přidána podpora specifikace Vulkan 1.4.335.
    • V sadě knihoven WindowsCodecs byla rozšířena podpora metadat v obrázkových souborech a byla implementována podpora konverze mezi celými formáty barev a formáty s pohyblivou řádovou čárkou.
    • Byla odstraněna závislost na knihovně OSMesa (Off-screen Mesa). Byla implementována možnost zobrazení bitmap přes OpenGL s využitím hardwarově akcelerovaného OpenGL runtime.
  • Integrace s plochou
    • V ovladači winewayland.drv, který umožňuje použít Wine v prostředích založených na protokolu Wayland bez použití XWayland a komponentů X11, byla implementována podpora schránky, vstupních metod, nepravidelných oken a průhlednosti.
    • Byla vylepšena integrace s X11: zajištěno odesílání žádostí o aktivaci oken správci oken a zapojen protokol EWMH pro synchronizaci stavu aktivních oken X11 a Win32.
    • Byla implementována podpora exkluzivního celoobrazovkového režimu. Byla zlepšena podpora celoobrazovkového režimu v D3D a vylepšena funkčnost starých her na platformě DDraw.
    • Byl zvýšen výkon některých funkcí práce s okny. Pro interakci mezi procesy byla použita sdílená paměť.
  • Direct3D
    • V Direct3D 11 byla přidána podpora hardwarové akcelerace dekódování videa ve formátu H.264, implementovaná prostřednictvím grafického API Vulkan.
    • V Direct3D 11 byla implementována podpora minmax filtrování textur s využitím OpenGL rozšíření GL_ARB_texture_filter_minmax nebo Vulkan rozšíření VK_EXT_sampler_filter_minmax.
    • V Direct3D 11 byly implementovány funkce pro načítání textur.
    • Byla implementována rozsáhlá sada funkcí Direct3D při vykreslování přes Vulkan, jako jsou míchání vrcholů, ploché stínování, uživatelské roviny ořezávání a různé formáty zdrojů.
    • Ve vestavěné kopii vkd3d-shader byla vylepšena podpora modelů 1, 2 a 3 shaderů.
    • V metodě D3DXSaveSurfaceToFileInMemory byla implementována podpora obrázků PNG, JPEG a BMP.
    • V Direct3D 10 a 11 byla implementována podpora komprese a dekomprese formátů BC4 a BC5, stejně jako generování MIP úrovní (MipMap) při načítání textur.
    • Byly implementovány metody ID3DXEffect::SetRawValue() a ID3DXSkinInfo::UpdateSkinnedMesh().
  • Vstupní zařízení
    • Zlepšena kompatibilita s herními ovladači díky použití backendu hidraw.
    • Zlepšena podpora vibračního efektu (Force feedback) při použití herních volantů a ovladačů.
    • Zlepšena podpora herních ovladačů v API Windows.Gaming.Input a při použití backendu evdev.
    • Do ovládacího panelu herních ovladačů byla přidána záložka pro nastavení API Windows.Gaming.Input.
    • Zvýšena kompatibilita DirectInput se staršími hrami.
  • Bluetooth
    • Do ovladače pro Bluetooth byla přidána možnost skenování, nastavení objevování a párování zařízení.
    • Byla přidána podpora služeb Bluetooth Low Energy.
    • Aplikacím byla poskytnuta možnost vytvářet nízkoúrovňová RFCOMM spojení s externími zařízeními pomocí API Winsock.
  • Podpora skenerů
    • Byla implementována podpora API TWAIN 2.0, která umožňuje přístup ke skenerům z 64bitových aplikací.
    • Byla implementována podpora komponentu DAT_IMAGENATIVEXFER pro přenos obrázku ze skeneru do aplikace.
    • Bylo zajištěno uložení vybraného skeneru a jeho nastavení do registru.
    • Byla přidána podpora vícetransparentního skenování a automatického podávání dokumentů.
    • Zastavena blokace aplikace během volání skenovacího rozhraní.
    • Byla přidána podpora stahování nativních ovladačů Windows pro skenery.
  • Mezinárodní standardizace
    • Byla zajištěna generace databáze lokalit ve formátu locale.nls z databáze Unicode CLDR (Unicode Common Locale Data Repository) verze 48. Přidána podpora dalších lokalit 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 a suz-Sunu-NP.
    • Tabulky znaků Unicode byly aktualizovány na verzi standardu 17.0.0. Byla aktualizována databáze časových pásem.
  • Síťové funkce
    • V motoru MSHTML v režimu dodržování standardů bylo zajištěno zpracování atributů prvků jako plnohodnotných uzlů DOM. Byly implementovány objekty DOMParser, XDomainRequest a msCrypto.
    • Do JavaScriptu byla přidána podpora typovaných polí.
    • Pro ICMPv6 byla implementována příkazová funkce ping.
  • DB
    • Do knihovny MSADO (ActiveX Data Objects) byla přidána podpora zápisu změn do DB. Byla implementována většina funkcí objektu Recordset.
    • V knihovně odbc32 byla zlepšena podpora ANSI win32 ovladačů, které nejsou určeny pro práci s Unicode. Byly implementovány funkce SQLDriverConnectA(), SQLSpecialColumnsW(), SQLGetInfoW(), SQLGetInfoW(), SQLStatisticsW() a QLColumnsW().
  • Vestavěné aplikace
    • Do WineCfg byla přidána záložka pro nastavení výchozího MIDI zařízení.
    • V uživatelském rozhraní cmd byla implementována automatická doplňování názvů souborů v interaktivním režimu, přidána podpora složitých příkazů a realizován příkaz „mklink /j“ pro vytvoření Reparse Point.
    • Do utility conhost (Console Hosting) byla přidána podpora získání historie stisknutím kláves F1 a F3.
    • Byly realizovány příkazy timeout, runas a subst.
    • Do utility find byly přidány volby „/c“ pro zobrazení počtu shod a /i pro porovnání bez ohledu na velikost písmen.
    • V utilitě whoami se objevila možnost nastavování formátu výstupu.
  • Různé
    • V implementaci jazyka pro popis rozhraní WIDL (Wine Interface Definition Language) se objevila podpora generování metadat Windows Runtime (WinRT). Byla zajištěna generace a instalace souborů WinMD (Windows Metadata) pro API WinRT (Windows Runtime).
    • Do utility winedump byla přidána podpora dumpování zdrojů MUI, čísel systémových volání, vestavěných NE-modulů a velkých souborů PDB (> 4 GB).
    • Byl proveden refaktor implementace Common Control, knihovna COMCTL32 byla rozdělena na samostatné moduly pro verze 5 a 6.
    • Do BCrypt byla přidána podpora standardu generování klíče PBKDF2.
    • Byla přidána podpora adresářů UserProgramFiles, AccountPictures a Screenshots.
    • Do součásti byly integrovány knihovny LLVM Compiler-RT 8.0.1 a TomCrypt 1.18.2. Pro určení CPU na platformě FreeBSD byla využita knihovna HwLoc.
    • Byly aktualizovány na nové verze komponenty 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.

    Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster