Nakon četiri mjeseca razvoja, objavljeno je stabilno izdanje Wayland 1.26 protokola, mehanizma međuprocesne komunikacije i biblioteka. Grana 1.26 je unatrag kompatibilna na API i ABI razini s izdanjima 1.x i sadrži prvenstveno ispravke programskih pogrešaka i manja ažuriranja protokola. Rad na projektu distribuira se pod MIT licencom. Reference composite server Weston, koji pruža kod i radne primjere za korištenje Waylanda u desktop i ugrađenim okruženjima, razvijen je u zasebnom razvojnom ciklusu.
Glavne promjene u protokolu:
- Dodan je događaj wl_pointer.warp koji omogućuje primanje obavijesti o novom položaju pokazivača bez rukovanja događajem wl_pointer.motion generiranim aktivnošću korisnika.
- Dodan je zahtjev wl_fixes.ack_global_remove, koji je osmišljen za slanje potvrde kompozitnom upravitelju da je klijent zaustavio obradu događaja, kako bi se spriječili uvjeti utrke prilikom uklanjanja globalnih događaja. Nakon što primi potvrdu od svih klijenata, kompozitni upravitelj može ukloniti program povezan s događajem na svojoj strani.
- Dodana je funkcija wl_display_remove_socket_fd() za uklanjanje utičnica prethodno dodanih putem poziva wl_display_add_socket_fd().
- U WAYLAND_DEBUG načinu rada za otklanjanje pogrešaka, vrijeme se bilježi u formatu "HH:MM:ss.xxxxxx", što pojednostavljuje parsiranje i usporedbu zapisnika.
Proširenja protokola dodana od prethodnog izdanja Waylanda koja nadopunjuju osnovni Wayland protokol i isporučuju se u zasebnom Wayland-Protocols skupu:
- xx-fractional-scale — za skaliranje logičkog koordinatnog sustava, u kojem su vrijednosti navedene kao cijeli brojevi, radi poboljšanja točnosti pozicioniranja i povećanja rezolucije logičkih koordinata do pojedinačnih piksela. Ova značajka rješava problem ograničene rezolucije logičkog koordinatnog sustava, koja je nedovoljna za pozicioniranje na razini pojedinačnog piksela, što je potrebno za potpunu implementaciju frakcijskog skaliranja.
- xx-izrezi — za dobivanje informacija o izrezima na zaslonu (na primjer, područje ispod prednje kamere na zaslonu pametnog telefona).
- xx-zone — za stvaranje i dodavanje prozora najviše razine u "zone" — okruženja s vlastitim koordinatnim prostorom. Protokol omogućuje logičan raspored prozora, u kojem je svaki prozor pozicioniran u odnosu na svaki drugi prozor.
- xx-keyboard-filter — za klijenta koji presreće odabrane događaje tipkovnice, mijenja ulazne događaje ili blokira prosljeđivanje određenih događaja fokusiranoj Wayland površini.
- Protokol xdg-session-management dodan je u kategoriju staging-a, pružajući mogućnost vraćanja stanja i položaja prozora iz prekinute sesije u okruženjima temeljenim na Wayland protokolu, na primjer, nakon složenog pada sustava. poslužitelja ili aplikacije.
- Protokol "linux-dmabuf" ažuriran je kako bi podržao sustave s više grafičkih procesora (multi-GPU). Na takvim sustavima klijent može pregovarati o kompozitnim poslužitelja koji GPU treba koristiti.
- Protokol za upravljanje bojama v1 ažuriran je kako bi podržao metapodatke slike BT.2100 za korištenje u kompozitnim slikama. poslužitelja specifični rukovatelji koji omogućuju ispravan prikaz HDR sadržaja kreiranog za Windows.
Značajni događaji vezani uz Wayland od objavljivanja posljednjeg broja:
- Cinnamon ima punu podršku za Wayland.
- U ANGLE biblioteci koja se koristi u Chromeu i Android, dodana je podrška za Wayland.
- KDE, kada koristi Wayland, implementira podršku za vraćanje sesije i Wayland protokol xx-fractional-scale-v2 za frakcijsko skaliranje.
- Za okruženja temeljena na Waylandu kreirana je inačica Synaptics X.Org upravljačkog programa.
- Pokrenuta je provjera spremnosti VFX i animacijskih platformi za zamjenu X11 s Waylandom.
- Započelo je testiranje Xfwl4 kompozitnog poslužitelja iz Xfce projekta.
- Unityjevo korisničko sučelje je ponovno kreirano pomoću Wayfirea i Libadwaite.
- Ažurirani kompozitni poslužitelji i desktop okruženja: 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.
Podsjetimo se da je Wayland protokol za interakciju između kompozitnog poslužitelja i aplikacija koje se na njemu izvode. Klijenti neovisno prikazuju svoje prozore u zasebnom međuspremniku, prosljeđujući informacije o ažuriranju kompozitnom poslužitelju. poslužitelja, koji kombinira sadržaj pojedinačnih međuspremnika aplikacije kako bi generirao konačni izlaz, uzimajući u obzir moguće nijanse poput preklapanja prozora i prozirnosti. Drugim riječima, kompozitni poslužitelj ne pruža API za renderiranje pojedinačnih elemenata, već radi samo na prethodno renderiranim prozorima, eliminirajući dvostruko međuspremništvo pri korištenju biblioteka visoke razine kao što su GTK i Qt, koje obavljaju posao sastavljanja sadržaja prozora.
Wayland rješava mnoge sigurnosne probleme X11 u X.Org Serveru, budući da, za razliku od potonjeg, izolira ulaz i izlaz za svaki prozor, ne dopušta klijentu pristup sadržaju prozora drugih klijenata i ne dopušta presretanje ulaznih događaja povezanih s drugim prozorima (XLibre XServer implementira X11 proširenje Xnamespace, koje omogućuje izolaciju klijenta putem odvajanja na razini imenskog prostora). Podrška za izravan rad s Waylandom implementirana je za većinu platformi koje se koriste u Linux grafičke biblioteke, uključujući GTK, Qt, SDL, FLTK, wxWidgets, Clutter i EFL (Enlightenment Foundation Library).
Interakcija s hardverom u Waylandu/Westonu, poput inicijalizacije, prebacivanja video načina rada (DRM modesetting) i upravljanja memorijom (GEM za i915 i TTM za Radeon i Nouveau) za grafičke kartice, može se izvoditi izravno putem modula na razini kernela, eliminirajući potrebu za privilegijama superkorisnika. Kako bi se osiguralo izvršavanje standardnih X11 aplikacija u Wayland okruženju, koristi se XWayland (Device-Dependent X) DDX komponenta, koja je slična radu Xwina i Xquartza za Win32 i macOS.
Izvor: opennet.ru
