После четырёх месяцев разработки представлен стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.26. Ветка 1.26 обратно совместима на уровне API и ABI с выпусками 1.x и содержит в основном исправления ошибок и незначительные обновления протокола. Наработки проекта распространяются под лицензией MIT. Эталонный композитный server Weston, предоставляющий код и рабочие примеры для использования Wayland в десктоп-окружениях и встраиваемых решениях, развивается в рамках отдельного цикла разработки.
Hlavné zmeny v protokole:
- Pridaná udalosť wl_pointer.warp, ktorá umožňuje prijímať upozornenia o novej pozícii ukazovateľa bez spracovania udalosti wl_pointer.motion generovanej aktivitou používateľa.
- Pridaná požiadavka wl_fixes.ack_global_remove, ktorá je navrhnutá tak, aby odoslala potvrdenie kompozitnému správcovi, že klient zastavil spracovanie udalosti, aby sa predišlo súbehu pri odstraňovaní globálnych udalostí. Po prijatí potvrdenia od všetkých klientov môže kompozitný správca odstrániť obslužný program priradený k udalosti na svojej strane.
- Pridaná funkcia wl_display_remove_socket_fd() na odstránenie soketov predtým pridaných prostredníctvom volania wl_display_add_socket_fd().
- V ladiacim režime WAYLAND_DEBUG sa čas zaznamenáva vo formáte „HH:MM:ss.xxxxxx“, čo zjednodušuje analýzu a porovnávanie protokolov.
Rozšírenia protokolov pridané od predchádzajúceho vydania Waylandu, ktoré dopĺňajú základný protokol Waylandu a sú dodávané v samostatnej sade Wayland-Protocols:
- xx-fractional-scale — na škálovanie logického súradnicového systému, v ktorom sú hodnoty zadané ako celé čísla, na zlepšenie presnosti polohovania a zvýšenie rozlíšenia logických súradníc až na jednotlivé pixely. Táto funkcia rieši problém obmedzeného rozlíšenia logického súradnicového systému, ktoré je nedostatočné na polohovanie na úrovni jednotlivých pixelov, čo je potrebné pre plnú implementáciu zlomkového škálovania.
- xx-výrezy — na získanie informácií o výrezoch na obrazovke (napríklad oblasť pod predným fotoaparátom na obrazovke smartfónu).
- xx-zones – na vytváranie a pridávanie okien najvyššej úrovne do „zón“ – prostredí s vlastným súradnicovým priestorom. Protokol umožňuje logické usporiadanie okien, v ktorom je každé okno umiestnené vzhľadom na každé iné okno.
- xx-keyboard-filter — pre klienta na zachytenie vybraných udalostí klávesnice, úpravu vstupných udalostí alebo blokovanie prenosu určitých udalostí do zameraného povrchu Wayland.
- В категорию «staging» добавлен протокол xdg-session-management, предоставляющий возможности для восстановления состояния и позиции окон прерванного сеанса в окружениях на основе протокола Wayland, например, после аварийного завершения композитного server alebo aplikácií.
- Protokol „linux-dmabuf“ bol aktualizovaný na podporu systémov s viacerými grafickými procesormi (Multi-GPU). Na takýchto systémoch môže klient vyjednávať o kompozitných server ktorá grafická karta by sa mala použiť.
- Protokol správy farieb v1 bol aktualizovaný, aby podporoval metadáta obrázkov BT.2100 na použitie v kompozitných snímkach. server špecifické obslužné programy, ktoré umožňujú správne zobrazenie HDR obsahu vytvoreného pre Windows.
Významné udalosti súvisiace s Waylandom od vydania posledného čísla:
- Cinnamon má plnú podporu pre Wayland.
- V knižnici ANGLE používanej v prehliadačoch Chrome a Android, pridaná podpora pre Wayland.
- KDE pri používaní Waylandu implementuje podporu obnovy relácií a protokol Wayland xx-fractional-scale-v2 pre frakčné škálovanie.
- Pre prostredia založené na Waylande bol vytvorený port ovládača Synaptics X.Org.
- Bola spustená kontrola pripravenosti platforiem VFX a animácie na nahradenie X11 systémom Wayland.
- Testovanie kompozitného servera Xfwl4 z projektu Xfce sa začalo.
- Používateľské rozhranie Unity bolo znovu vytvorené pomocou Wayfire a Libadwaita.
- Aktualizované kompozitné servery a desktopové prostredia: COSMIC 1.3.0, Weston 16, Phosh 0.56, Nourish 1.0.0, miracle-wm 0.10, KDE Plasma 6.7, labwc 0.20, Sway 1.2, Wayland Maker 0.8, Hyprland 0.55, Niri 26.04, LXQt 2.4.0, Cage 0.3.
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному server, ktorý kombinuje obsah jednotlivých vyrovnávacích pamätí aplikácií na generovanie konečného výstupu, pričom zohľadňuje možné nuansy, ako je prekrývanie okien a priehľadnosť. Inými slovami, kompozitný server neposkytuje API na vykresľovanie jednotlivých prvkov, ale funguje iba na predvykreslených oknách, čím sa eliminuje dvojité ukladanie do vyrovnávacej pamäte pri použití knižníc na vysokej úrovni, ako sú GTK a Qt, ktoré zabezpečujú prácu s kompozíciou obsahu okien.
Wayland rieši mnohé bezpečnostné problémy X11 v X.Org Serveri, pretože na rozdiel od neho izoluje vstup a výstup pre každé okno, neumožňuje klientovi prístup k obsahu okien iných klientov a neumožňuje zachytávanie vstupných udalostí súvisiacich s inými oknami (XLibre XServer implementuje rozšírenie X11 Xnamespace, ktoré poskytuje izoláciu klienta prostredníctvom oddelenia na úrovni menného priestoru). Podpora pre priamu prácu s Waylandom je implementovaná pre väčšinu platforiem používaných v Linux grafické knižnice vrátane GTK, Qt, SDL, FLTK, wxWidgets, Clutter a EFL (Enlightenment Foundation Library).
Interakcia s hardvérom vo Wayland/Weston, ako je inicializácia, prepínanie video režimu (DRM modesetting) a správa pamäte (GEM pre i915 a TTM pre Radeon a Nouveau) pre grafické karty, sa môže vykonávať priamo prostredníctvom modulu na úrovni jadra, čím sa eliminuje potreba oprávnení superužívateľa. Na zabezpečenie vykonávania štandardných aplikácií X11 v prostredí založenom na Waylande sa používa komponent XWayland (Device-Dependent X) DDX, ktorý je svojou prevádzkou podobný Xwin a Xquartz pre Win32 a... macOS.
Zdroj: opennet.ru
