Po štirih mesecih razvoja je predstavljen stabilni izdajni protokol, mehanizem medprocesnega sodelovanja in knjižnice Wayland 1.26. Večina 1.26 je nazaj združljiva na ravni API in ABI z izdajami 1.x in vsebuje predvsem popravke napak ter manjše posodobitve protokola. Razvoj projekta se širi pod MIT licenco. Referenčni kompozitni strežnik Weston, ki nudi kodo in delovne primere za uporabo Waylanda v namiznih okoljih in vgrajenih rešitvah, se razvija znotraj ločenega cikla razvoja.
Glavne spremembe v protokolu:
- Dodano je bilo dogodek wl_pointer.warp, preko katerega je mogoče prejemati obvestila o novi poziciji kazalca brez obdelave dogodka wl_pointer.motion, ki ga generira uporabnikova aktivnost.
- Dodano je bilo povpraševanje wl_fixes.ack_global_remove, namenjeno pošiljanju kompozitnemu upravitelju potrdila, da je stranka prenehala obdelovati dogodek, da se izključi stanje tekmovanja pri odstranitvi globalnih dogodkov. Po prejemu potrditve od vseh strank lahko kompozitni upravitelj odstrani povezanega obdelovalca na svoji strani.
- Dodana je funkcija wl_display_remove_socket_fd() za odstranjevanje socketov, ki so bili prej dodani preko klica wl_display_add_socket_fd().
- V načinu za odpravljanje težav WAYLAND_DEBUG je zagotovljen izpis v dnevnik časa v formatu "HH:MM:ss.xxxxxx", kar poenostavi analizo in primerjavo dnevnikov.
Dodane protokolne razširitve po prejšnjem izdanju Waylanda, ki dopolnjujejo osnovni protokol Wayland in se dobavljajo v ločenem naboru Wayland-Protocols:
- xx-fractional-scale – za skaliranje sistema logičnih koordinat, katerih vrednosti so določene z naravnimi številkami, za povečanje natančnosti pozicioniranja in povečanje ločljivosti logičnih koordinat na posamezne piksle. Takšna možnost rešuje težavo omejene ločljivosti sistema logičnih koordinat, ki ni dovolj za pozicioniranje na ravni posameznih pikslov, kar je potrebno za polno implementacijo delnega skaliranja.
- xx-cutouts – za pridobivanje informacij o izrezih na zaslonu (na primer, območja pod sprednjo kamero na zaslonu pametnega telefona).
- xx-zones — za ustvarjanje in dodajanje nadgradnih oken v »cone« — okolja z lastnim prostorom koordinat. Protokol omogoča organizacijo logičnega razporeda oken, kjer je vsako okno postavljeno v odnosu do drugega okna.
- xx-keyboard-filter — za zajemanje izbranih dogodkov tipkovnice s strani stranke, spreminjanje vhodnih dogodkov ali blokiranje prenosa določenih dogodkov v Wayland površino, na kateri je osredotočeno vnos.
- V kategorijo »staging« je bil dodan protokol xdg-session-management, ki omogoča obnovitev stanja in položaja oken prekinjenega seje v okoljih, temelječih na protokolu Wayland, na primer po nenadnem končanju kompozita strežnika ali aplikacije.
- V protokol «linux-dmabuf» je bila dodana podpora za delovanje na sistemih z več GPU-ji. Na takih sistemih lahko stranka dogovori s kompoziti serverom kateri GPU naj se uporablja.
- V protokolu color-management-v1 je bila dodana podpora za metapodatke slik v formatu BT.2100 za uporabo v kompozitu strežnikom specifičnih obdelovalnikov, ki omogočajo pravilno prikazovanje HDR vsebin, ustvarjenih za Windows.
Najbolj opazni dogodki, povezani z Waylandom, ki so se zgodili po izdaji prejšnjega izida:
- V Cinnamon je bila uvedena popolna podpora za Wayland.
- V knjižnico ANGLE, ki se uporablja v Chromu in Androidu, je bila dodana podpora za Wayland.
- V KDE je bila pri uporabi Waylanda uvedena podpora za obnovitev sej in implementacija Wayland protokola xx-fractional-scale-v2 za fractional scaling.
- Ustvarjena je bila različica X.Org gonilnika Synaptics za okolja, temelječa na Waylandu.
- Začela je preverjanje pripravljenosti platform VFX in animacije za zamenjavo X11 z Waylandom.
- Začelo se je testiranje kompozitnega strežnika Xfwl4 projekta Xfce.
- Na osnovi Wayfire in Libadwaita je bila rekonstruirana uporabniška lupina Unity.
- Posodobljeni so kompozitni strežniki in namizna okolja: 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.
Spomnimo, da je Wayland protokol za interakcijo med kompozitnim strežnikom in aplikacijami, ki z njim delujejo. Stranke samostojno izvajajo risanje svojih oken v ločenem pomnilniku ter prenašajo informacije o posodobitvah kompozitu. strežniku, ki združuje vsebino medpomnilnikov posameznih aplikacij za ustvarjanje končne izhoda ob upoštevanju morebitnih posebnosti, kot so prekrivanje oken in prosojnost. Drugimi besedami, kompozitni strežnik ne zagotavlja API-ja za risanje posameznih elementov, temveč deluje samo z že oblikovanimi okni, kar omogoča odpravo dvojnega medpomnjenja pri uporabi visoko nivojskih knjižnic, kot sta GTK in Qt, ki prevzamejo nalogo sestavljanja vsebine oken.
Wayland rešuje številne težave z varnostjo X11 v X.Org strežniku, saj v nasprotju z zadnjim izolira vhod in izhod za vsako okno, ne omogoča stranki dostopa do vsebine oken drugih strank, prav tako pa ne dovoljuje prestrezanja dogodkov vhodov, povezanih z drugimi okni (v XLibre XServer je implementirana X11-razširitev Xnamespace, ki zagotavlja izolacijo strank z ločevanjem na ravni imenikov). Podpora za neposredno delo s Waylandom je bila implementirana za večino grafičnih knjižnic, ki se uporabljajo v Linuxu, vključno z GTK, Qt, SDL, FLTK, wxWidgets, Clutter in EFL (Enlightenment Foundation Library).
Interakcija z strojno opremo v Waylandu/Westonu, na primer inicializacija, preklapljanje video načinov (drm modesetting) in upravljanje pomnilnika (GEM za i915 in TTM za radeon in nouveau) grafičnih kartic, se lahko izvaja neposredno preko modula, ki deluje na ravni jedra, kar omogoča posluženje brez privilegijev superuporabnika. Za omogočanje delovanja običajnih X11 aplikacij v okolju, ki temelji na Waylandu, se uporablja DDX komponenta XWayland (Device-Dependent X), ki je organizacijsko podobna Xwin in Xquartz za platforme Win32 in macOS.
Izvor: opennet.ru
