Na vier maanden ontwikkeling is de stabiele release van het Wayland-protocol, het mechanisme voor interprocescommunicatie en de Wayland 1.26-bibliotheken gepresenteerd. De 1.26-tak is terugwaarts compatibel op API- en ABI-niveau met de 1.x-releases en bevat voornamelijk foutoplossingen en kleine protocolupdates. De opbrengsten van het project worden verspreid onder de MIT-licentie. De referentiecompositor server Weston, die code en werkvoorbeelden biedt voor het gebruik van Wayland in desktopomgevingen en embedded oplossingen, ontwikkelt zich binnen een aparte ontwikkelingscyclus.
Belangrijkste wijzigingen in het protocol:
- Er is een gebeurtenis wl_pointer.warp toegevoegd, waarmee meldingen over een nieuwe positie van de aanwijzer kunnen worden ontvangen zonder de wl_pointer.motion-gebeurtenis te verwerken, die wordt gegenereerd bij gebruikersactiviteit.
- De aanvraag wl_fixes.ack_global_remove is toegevoegd, bedoeld om de compositor manager te bevestigen dat de client is gestopt met het verwerken van de gebeurtenis, om een raceconditie te voorkomen bij het verwijderen van globale gebeurtenissen. Na ontvangst van de bevestiging van alle clients kan de compositor manager de bij de gebeurtenis horende handler aan zijn kant verwijderen.
- De functie wl_display_remove_socket_fd() is toegevoegd om sockets te verwijderen die eerder zijn toegevoegd via de oproep wl_display_add_socket_fd().
- In de debugmodus biedt WAYLAND_DEBUG logoutput met tijd in het formaat 'HH:MM:ss.xxxxxx', wat het analyseren en vergelijken van logs vereenvoudigt.
Toegevoegde protocoluitbreidingen na de vorige release van Wayland, die het basisprotocol Wayland aanvullen en in een aparte set Wayland-Protocols worden geleverd:
- xx-fractional-scale ā voor het schalen van een systeem met logische coƶrdinaten, waarvan de waarden zijn gegeven als gehele getallen, om de positionering te verbeteren en de resolutie van logische coƶrdinaten tot afzonderlijke pixels te verhogen. Deze mogelijkheid lost het probleem op van de beperkte resolutie van het systeem voor logische coƶrdinaten, die onvoldoende is voor positionering op het niveau van afzonderlijke pixels, noodzakelijk voor een volledige implementatie van fractional scaling.
- xx-cutouts ā om informatie over uitsparingen op het scherm te krijgen (bijvoorbeeld gebieden onder de frontcamera op het smartphonescherm).
- xx-zones ā voor het creĆ«ren en toevoegen van bovenliggende vensters in "zones" ā omgevingen met hun eigen coƶrdinatenruimte. Het protocol maakt een logische plaatsing van vensters mogelijk, waarbij elk venster ten opzichte van een ander venster wordt geplaatst.
- xx-keyboard-filter ā voor het onderscheppen van door de klant geselecteerde toetsenbordevenementen, het wijzigen van invoerevenementen of het blokkeren van de overdracht van bepaalde evenementen naar de Wayland-oppervlakte waarop de invoerfocus is ingesteld.
- In de categorie "staging" is het xdg-session-management protocol toegevoegd, dat mogelijkheden biedt voor het herstellen van de status en positie van vensters van een onderbroken sessie in omgevingen op basis van het Wayland-protocol, bijvoorbeeld na een crash van de compositor of toepassing. de server of app.
- In het linux-dmabuf protocol is ondersteuning toegevoegd voor systemen met meerdere GPU's. Op dergelijke systemen kan de cliƫnt overeenkomen met de compositors welke GPU moet worden gebruikt. server welke van de GPU's moet worden gebruikt.
- In het color-management-v1 protocol is ondersteuning toegevoegd voor afbeeldingsmetadata in het BT.2100-formaat voor gebruik in compositors. de server specifieke handlers die correct HDR-inhoud kunnen weergeven die is gemaakt voor Windows.
De meest opvallende gebeurtenissen met betrekking tot Wayland die zich hebben voorgedaan na de publicatie van de vorige release:
- In Cinnamon is volledige ondersteuning voor Wayland gerealiseerd.
- In de ANGLE-bibliotheek, die wordt gebruikt in Chrome en Android, is ondersteuning voor Wayland toegevoegd.
- In KDE is de ondersteuning voor sessieherstel gerealiseerd bij gebruik van Wayland en is het Wayland-protocol xx-fractional-scale-v2 geĆÆmplementeerd voor fractionele schaling.
- Er is een port van de X.Org-driver Synaptics gemaakt voor omgevingen op basis van Wayland.
- Er is een controle gestart voor de gereedheid van VFX- en animatieplatforms voor de vervanging van X11 door Wayland.
- De test van de composite server Xfwl4 van het Xfce-project is begonnen.
- Op basis van Wayfire en Libadwaita is een gebruikersshell Unity gereconstrueerd.
- De compositors en desktopomgevingen zijn bijgewerkt: 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.
Ter herinnering, Wayland is een protocol voor de interactie tussen de compositors en de applicaties die ermee werken. Klanten renderen hun vensters zelf in een aparte buffer en sturen informatie over updates naar de compositor. server, die de inhoud van afzonderlijke applicatiebuffers combineert om een einduitvoer te vormen met inachtneming van mogelijke nuances, zoals vensteroverlap en transparantie. Met andere woorden, de composietserver biedt geen API voor het tekenen van afzonderlijke elementen, maar werkt uitsluitend met al gevormde vensters, wat het mogelijk maakt om dubbele buffering te vermijden bij het gebruik van high-level bibliotheken zoals GTK en Qt, die de taak van vensterinhoudsamenstelling op zich nemen.
Wayland lost veel van de beveiligingsproblemen van X11 in de X.Org-server op, aangezien het, in tegenstelling tot de laatste, input en output voor elk venster isoleert, het de cliënt niet toestaat toegang te krijgen tot de inhoud van vensters van andere cliënten en geen gebeurtenissen met andere vensters opvangt (in XLibre XServer is de X11-extensie Xnamespace geïmplementeerd, die clientisolatie waarborgt door middel van naamruimte scheiding). Directe ondersteuning voor Wayland is geïmplementeerd voor de meeste grafische bibliotheken die in Linux worden gebruikt, waaronder GTK, Qt, SDL, FLTK, wxWidgets, Clutter en EFL (Enlightenment Foundation Library).
Interactie met hardware in Wayland/Weston, zoals het uitvoeren van initialisatie, het schakelen van videomodi (drm modesetting) en het beheren van geheugen (GEM voor i915 en TTM voor radeon en nouveau) van grafische kaarten, kan direct gebeuren via een module die op kernniveau werkt, wat het mogelijk maakt zonder superuserprivileges te werken. Voor de uitvoering van standaard X11-applicaties in een omgeving op basis van Wayland wordt het DDX-component XWayland (Device-Dependent X) gebruikt, dat qua werking vergelijkbaar is met Xwin en Xquartz voor Win32- en macOS-platforms.
Bron: opennet.ru
