Wayland (protocole)

Wayland est un protocole de serveur graphique et une bibliothèque pour Linux qui met en œuvre ce protocole.

Wayland fournit une méthode permettant aux gestionnaires de composition de fenêtres de communiquer directement avec les applications et le matériel vidéo. Il est prévu que la communication avec le matériel d’entrée soit également possible en utilisant d’autres bibliothèques. Les applications rendent les graphiques dans leurs propres tampons et le gestionnaire de fenêtres devient le serveur graphique, en composant ces tampons pour former l’affichage à l’écran des fenêtres de l’application. Il s’agit d’une approche plus simple et plus efficace que l’utilisation d’un gestionnaire de composition de fenêtres avec le système X Window.

Dans le cadre de ses efforts, le projet Wayland développe également une implémentation de référence d’un compositeur Wayland appelé Weston.

Historique

Kristian Høgsberg (krh), ingénieur logiciel travaillant sur la pile graphique de Linux, a lancé Wayland sur son temps libre en 2008, alors qu’il travaillait pour Red Hat, et actuellement pour Intel. Il avait auparavant travaillé sur AIGLX, qui permettait l’accélération matérielle dans les gestionnaires de composition de fenêtres, et sur DRI2.
Le nom « Wayland » vient de la ville de Wayland, dans le Massachusetts. Høgsberg traversait cette ville en voiture lorsque les concepts à l’origine de Wayland se sont « cristallisés ».
Son objectif principal était un système dans lequel « chaque image est parfaite, ce qui signifie que les applications seront en mesure de contrôler suffisamment le rendu pour ne jamais voir de déchirure, de décalage, de redécoupage ou de scintillement ».

Wayland est un logiciel libre. Les bibliothèques libwayland-server et libwayland-client ont été publiées sous la licence MIT et le compositeur de démonstration sous les termes de la LGPLv2. Il était prévu de faire passer l’ensemble du projet sous la licence LGPLv2, mais cela ne s’est pas produit et l’ensemble du projet est actuellement sous la licence MIT.

En novembre 2010, Wayland ne fonctionne qu’avec des pilotes libres et open source pour Intel, AMD (anciennement connu sous le nom d’ATI) et Nvidia (nouveau driver). En novembre 2010, Nvidia a déclaré qu’il n’avait pas l’intention de supporter Wayland sur ses pilotes captifs.

Les développeurs de Wayland sont en grande majorité des développeurs de serveurs X.Org.

En mars 2021, Nvidia adopte finalement les standards Wayland et commence à supporter Wayland dans ses pilotes propriétaires.

Adoption de Wayland

En juillet 2022 :

Conception

Ces dernières années, le graphisme de bureau sous GNU/Linux est passé d’une « pile d’interfaces de rendu… qui parlent toutes au serveur X, qui est le centre de l’univers » à un noyau Linux « au milieu », avec « des systèmes de fenêtrage comme X et Wayland… dans un coin ». Il s’agira d’un « système graphique très simplifié qui offre plus de flexibilité et de meilleures performances ».
Høgsberg aurait pu ajouter une extension à X, comme l’ont fait d’autres projets récents, mais il a préféré « écarter X du chemin entre les clients et le matériel » pour les raisons expliquées dans la FAQ du projet.



Wayland se compose d’un protocole (largement complet) et d’une implémentation de référence appelée Weston. Pour le rendu, Weston peut utiliser OpenGL ES ou software (la bibliothèque pixman). Actuellement, les clients sont limités à OpenGL ES au lieu d’OpenGL complet parce que « libGL utilise GLX et toutes les dépendances X ». Le projet développe également des versions de GTK+ et Qt qui effectuent le rendu sur Wayland au lieu de X. On s’attend à ce que la plupart des applications obtiennent le support de Wayland par l’intermédiaire de l’une de ces bibliothèques sans avoir à modifier l’application.

Wayland ne fournit pas actuellement de transparence réseau, mais pourrait le faire à l’avenir. Il a été essayé comme projet Google Summer of Code en 2011, mais sans succès. La liste des choses à faire pour Wayland 1.0 comprend « peut-être essayer de faire fonctionner Wayland à distance, voir s’il y a quelque chose dans le protocole/architecture qui rend les choses plus difficiles qu’elles ne devraient l’être ». Adam Jackson a prévu de fournir un accès à distance à une application Wayland soit par « pixel-scraping » (comme VNC), soit en envoyant un « flux de commandes de rendu » sur le réseau (comme dans RDP, SPICE ou X11). Début 2013, Høgsberg a expérimenté la transparence du réseau en utilisant un serveur proxy Wayland qui envoie des images compressées au compositeur réel.
Weston, le compositeur Wayland de référence, ne fonctionne qu’avec le noyau Linux en raison de sa dépendance à l’égard de fonctionnalités spécifiques à Linux telles que udev.

Compatibilité X

xwayland a été écrit pour permettre l’exécution d’applications X11 par l’intermédiaire d’un serveur X, éventuellement sans les privilèges root, fonctionnant en tant que client Wayland. Cela est similaire à la façon dont les applications X fonctionnent dans l’environnement graphique natif de Mac OS X.

Les applications écrites avec la bibliothèque Qt peuvent basculer entre X et Wayland au moment du chargement avec l’option de ligne de commande -platform. En janvier 2011, le support de Wayland a été déplacé vers la branche Lighthouse du dépôt Qt. Qt Lighthouse est inclus dans la version 4.8 de Qt.



En décembre 2010, GTK+ a ajouté un support préliminaire pour changer le backend à l’exécution, en disant « X11+Wayland ou XQuartz+X11 sont des combinaisons intéressantes ». En janvier 2011, le backend Wayland de GTK+ a été mis à jour pour supporter la fonctionnalité multi-backend et a été déplacé vers la branche gdk-wayland-backend du dépôt GTK+ Git. En avril 2011, la branche gdk-wayland-backend a été fusionnée avec la branche principale de GTK+.

Les gestionnaires de composition de fenêtres existants, tels que KWin et Mutter, devraient implémenter directement le support de Wayland, pour devenir des compositeurs/serveurs graphiques Wayland.

Similar Posts: