La version 1.38 du paquet wayland-protocols a été publiée, contenant un ensemble de protocoles et d'extensions qui complÚtent le protocole de base Wayland et fournissent les fonctionnalités nécessaires à la création de serveurs composites et d'environnements utilisateur.
Tous les protocoles passent par trois phases successives : dĂ©veloppement, test et stabilisation. AprĂšs la phase de dĂ©veloppement (catĂ©gorie « unstable »), le protocole est placĂ© dans la branche « staging » et est officiellement inclus dans l'ensemble des wayland-protocols. Une fois les tests terminĂ©s, il est dĂ©placĂ© dans la catĂ©gorie stable. Les protocoles de la catĂ©gorie « staging » peuvent dĂ©jĂ ĂȘtre utilisĂ©s dans des serveurs composites et des clients oĂč les fonctionnalitĂ©s associĂ©es sont nĂ©cessaires. Contrairement Ă la catĂ©gorie « unstable », des modifications qui compromettent la compatibilitĂ© sont interdites dans « staging », mais en cas de problĂšmes et de lacunes identifiĂ©s lors des tests, un remplacement par une nouvelle version significative du protocole ou une autre extension Wayland n'est pas exclu.
Dans la nouvelle version, les protocoles suivants ont été ajoutés à la catégorie «staging» :
- xdg-system-bell â permet de gĂ©nĂ©rer un signal systĂšme qui peut ĂȘtre utilisĂ©, par exemple, comme alerte dans les Ă©mulateurs de terminal. La forme de sortie du signal est laissĂ©e Ă la discrĂ©tion du gestionnaire de composition, cela peut ĂȘtre non seulement un son, mais aussi une rĂ©ponse visuelle.
- fifo â met en Ćuvre un mĂ©canisme FIFO (premier arrivĂ©, premier parti) pour le traitement de la file d'attente de mise Ă jour du contenu de la surface affichĂ©e. D'un point de vue pratique, le protocole permet d'utiliser l'attente de la fin du dĂ©calage vertical (vblank) au lieu d'appels de rappel Ă chaque fois qu'il est prĂȘt Ă afficher un nouveau cadre, ce qui rĂ©sout le problĂšme d'une charge GPU Ă©levĂ©e en utilisant VSync.
- commit-timing â permet d'associer une limite de temps au contenu d'une surface (le serveur composite doit afficher la modification du contenu dans la mesure du possible aprĂšs le temps indiquĂ©, mais pas avant).
Actuellement, l'ensemble des wayland-protocols comprend les protocoles stables suivants, garantissant la rétrocompatibilité :
- « viewporter » â permet au client d'effectuer des actions de mise Ă l'Ă©chelle et de rognage des bords de la surface cĂŽtĂ© serveur.
- « presentation-time » â assure l'affichage de la vidĂ©o.
- « xdg-shell » â interface de crĂ©ation et d'interaction avec les surfaces en tant que fenĂȘtres, permettant de les dĂ©placer Ă l'Ă©cran, de les minimiser, de les agrandir, de redimensionner, etc.
- « linux-dmabuf » â permet le partage de plusieurs cartes graphiques grĂące Ă la technologie DMA-BUF (permet de crĂ©er un wl_buffer basĂ© sur DMA-BUF).
- «tablet» â organisation de l'entrĂ©e Ă partir de tablettes graphiques.
Protocoles testés dans la branche « staging » :
- drm-lease â fournit les ressources nĂ©cessaires pour crĂ©er une image stĂ©rĂ©o avec des tampons diffĂ©rents pour l'Ćil gauche et l'Ćil droit lors de l'affichage sur des casques de rĂ©alitĂ© virtuelle.
- «ext-session-lock» â dĂ©finit les moyens de verrouillage de session, par exemple, lors de l'utilisation d'un Ă©conomiseur d'Ă©cran ou lors de l'affichage d'une boĂźte de dialogue d'authentification.
- «single-pixel-buffer» â permet de crĂ©er des tampons de un pixel comprenant quatre valeurs 32 bits RGBA.
- «xdg-activation» â permet de transfĂ©rer le focus entre diffĂ©rentes surfaces de niveau supĂ©rieur (par exemple, avec xdg-activation, une application peut dĂ©placer le focus sur une autre).
- content-type â permet aux clients de transmettre des informations sur le contenu affichĂ©, qui peuvent ĂȘtre utilisĂ©es pour optimiser le comportement en fonction du contenu, par exemple, pour dĂ©finir des propriĂ©tĂ©s DRM spĂ©cifiques telles que «content type». Les types de contenu suivants sont pris en charge : none (aucune information sur le type de donnĂ©es), photo (affichage de photos numĂ©riques nĂ©cessitant un minimum de traitement), video (vidĂ©o ou animation nĂ©cessitant une synchronisation plus prĂ©cise pour Ă©viter les saccades) et game (exĂ©cution de jeux nĂ©cessitant un affichage avec un retard minimal). serveur ext-idle-notify â permet aux serveurs de composition de transmettre aux clients des notifications d'inactivitĂ© de l'utilisateur, ce qui peut ĂȘtre utilisĂ© pour activer des modes d'Ă©conomie d'Ă©nergie supplĂ©mentaires aprĂšs une certaine pĂ©riode d'inactivitĂ©.
- tearing-control â permet de dĂ©sactiver la synchronisation verticale (VSync) dans les applications en plein Ă©cran avec une impulsion de suppression de frame, utilisĂ©e pour Ă©viter les dĂ©chirements lors de l'affichage. Dans les applications multimĂ©dias, l'apparition d'artefacts causĂ©s par le tearing est un effet indĂ©sirable, mais dans les programmes de jeux, la prĂ©sence d'artefacts peut ĂȘtre tolĂ©rĂ©e si la lutte contre ceux-ci entraĂźne des retards supplĂ©mentaires.
- ext-foreign-toplevel-list â obtention d'informations sur les surfaces placĂ©es au niveau supĂ©rieur, permettant d'organiser le maintien des fenĂȘtres au-dessus d'un autre contenu, par exemple pour connecter des panneaux et des commutateurs propres.
- ext-foreign-toplevel-list â obtention d'informations sur les surfaces placĂ©es au niveau supĂ©rieur, permettant d'organiser le maintien des fenĂȘtres au-dessus d'un autre contenu, par exemple pour connecter des panneaux et des commutateurs propres.
- security-context â permet d'identifier les clients utilisant l'isolation sandbox. Le client peut enregistrer une nouvelle connexion au serveur composite basĂ© sur Wayland et y attacher un contexte de sĂ©curitĂ©, aprĂšs quoi, conformĂ©ment au contexte de sĂ©curitĂ© spĂ©cifiĂ©, le gestionnaire de composition restreindra les capacitĂ©s disponibles pour la connexion Ă©tablie.
- cursor-shape â une mĂ©thode alternative de configuration de l'apparence du curseur, basĂ©e sur la transmission d'une sĂ©rie d'images de curseur au lieu d'une liaison Ă la surface (wl_surface).
- «ext-transient-seat» â conçu pour crĂ©er des sessions temporaires indĂ©pendantes (seat), destinĂ©es Ă ĂȘtre utilisĂ©es avec des dispositifs d'entrĂ©e virtuels. Par exemple, lors de la mise en Ćuvre de la possibilitĂ© de connexion Ă un bureau distant le protocole permet de crĂ©er une session distincte pour chaque utilisateur avec un clavier et une souris virtuels.
- «xdg-toplevel-drag» â Ă©tend le mĂ©canisme «glisser-dĂ©poser» avec la possibilitĂ© d'attacher des fenĂȘtres de niveau supĂ©rieur Ă une opĂ©ration de dĂ©placement, ce qui peut ĂȘtre utilisĂ©, par exemple, pour organiser le glissement de panneaux d'outils ou d'onglets de navigateur. Le nouveau protocole permet de crĂ©er des parties dĂ©tachables de la fenĂȘtre, qui, lorsqu'elles sont glissĂ©es hors de cette fenĂȘtre, deviennent de nouvelles fenĂȘtres et peuvent ĂȘtre dĂ©placĂ©es au-dessus d'une fenĂȘtre existante avant d'ĂȘtre reconnectĂ©es.
- «xdg-dialog» â permet d'attribuer des caractĂ©ristiques spĂ©cifiques aux fenĂȘtres de niveau supĂ©rieur, par exemple, il est possible de crĂ©er des dialogues modaux qui bloquent l'interaction de l'utilisateur avec le reste de l'interface.
- « linux-drm-syncobj » â fournit des outils pour la synchronisation explicite des buffers Ă l'aide d'objets de synchronisation DRM (Direct Rendering Manager). Il est supposĂ© que dans le contexte de la synchronisation lors du rendu dans le buffer, le protocole proposĂ© permettra d'amĂ©liorer le fonctionnement avec les pilotes basĂ©s sur les APIs graphiques Vulkan et OpenGL (la rĂ©alisation est basĂ©e sur des gestionnaires dans les pilotes). Le nouveau protocole permet de s'assurer que l'opĂ©ration de rendu dans le buffer est terminĂ©e avant que le gestionnaire composite n'affiche ce buffer.
- alpha-modifier, permettant aux clients de modifier le niveau de transparence de la surface et de déplacer les opérations de gestion de la transparence vers le serveur composite, qui peut ensuite rediriger ces opérations vers KMS.
- xdg-toplevel-icon â liaison d'une icĂŽne Ă une fenĂȘtre de niveau supĂ©rieur.
- ext-image-capture-source et ext-image-copy-capture â organisation de la capture de contenu affichĂ© Ă l'Ă©cran.
Protocoles en cours de développement dans la branche «unstable»:
- «fullscreen-shell» â gestion du mode plein Ă©cran.
- «input-method» â traitement des mĂ©thodes d'entrĂ©e.
- «idle-inhibit» â dĂ©sactivation du lancement de l'Ă©conomiseur d'Ă©cran.
- «input-timestamps» â horodatages pour les Ă©vĂ©nements d'entrĂ©e.
- «keyboard-shortcuts-inhibit» â gestion de l'attachement des combinaisons de touches et des raccourcis clavier.
- «linux-explicit-synchronization» â mĂ©canisme de synchronisation des tampons spĂ©cifique Ă Linux liĂ© Ă la surface.
- «pointer-gestures» â contrĂŽle des gestes des Ă©crans tactiles.
- «pointer constraints» â contraintes des pointeurs (blocage).
- «primary-selection» â de maniĂšre similaire Ă X11, fournit un fonctionnement du tampon de sĂ©lection primaire, dont l'insertion d'informations se fait gĂ©nĂ©ralement par le bouton central de la souris.
- «relative pointer events» â Ă©vĂ©nements de pointeur relatifs.
- «text-input» â gestion de l'entrĂ©e de texte.
- «xdg-foreign» â interface d'interaction avec les surfaces du client «voisin».
- «xdg-decoration» â rendu des dĂ©corations des fenĂȘtres cĂŽtĂ© serveur.
- «xdg-output» â informations supplĂ©mentaires sur la sortie vidĂ©o (utilisĂ©e pour le zoom fractionnĂ©).
- «xwayland-keyboard-grab» â capture de l'entrĂ©e dans les applications XWayland.
On peut Ă©galement noter la proposition d'un employĂ© de Valve d'ajouter une nouvelle phase pour la promotion des nouveaux protocoles Wayland â «experimental», qui permettra d'abaisser le seuil d'inclusion des protocoles dans l'ensemble wayland-protocols et d'accĂ©lĂ©rer leur adoption. Actuellement, pour qu'un protocole passe en phase staging, il faut former une Ă©quipe de soutien et obtenir un certain nombre de confirmations (ACK) de la part des participants Ă l'examen. Dans la phase «experimental», il est proposĂ© d'accepter un protocole, non pas par confirmation, mais sur la base de l'absence d'objections (NACK) pendant une pĂ©riode d'examen de deux semaines. Les participants peuvent Ă©galement prolonger la discussion de deux semaines supplĂ©mentaires, en indiquant le statut «WAIT».
Dans la phase «experimental», il est Ă©galement proposĂ© de permettre les modifications qui compromettent la compatibilitĂ© et l'ajout de protocoles «bruts», qui pourront ĂȘtre progressivement dĂ©veloppĂ©s. Ainsi, la phase «experimental» permettra d'acheminer rapidement aux dĂ©veloppeurs de nouveaux prototypes de protocoles, de stimuler leur mise en Ćuvre dans des projets existants et d'obtenir des retours d'expĂ©rience des utilisateurs. Le processus proposĂ© devrait libĂ©rer les dĂ©veloppeurs de protocoles des longues discussions et des tracas avant leur inclusion dans wayland-protocols. Par exemple, les protocoles xdg-system-bell, fifo et commit-timing, acceptĂ©s dans cette version actuelle, ont Ă©tĂ© discutĂ©s pendant plus d'un an.
Source : opennet.ru
