Pourquoi Wayland est-il meilleur?

177

Comme Mark Shuttleworth l'a annoncé récemment , Ubuntu utilisera Wayland comme gestionnaire d'affichage.

Quelles sont les plus grandes différences entre X11 et Wayland? Pourquoi Wayland va-t-il améliorer Ubuntu?

Hillar
la source
5
Depuis décembre 2013, Ubuntu basé sur Unity utilisera probablement le serveur d'affichage Mir au lieu d'un compositeur basé sur Wayland à partir d'Ubuntu 14.10: lien lien D'autres variantes d'Ubuntu seront probablement transférées à Wayland: lien
Diego
4
Voici une superbe vidéo expliquant X et pourquoi les gens veulent la remplacer: youtube.com/watch?v=cQoQE_HDG8g
Jason
Ubuntu 18 (Bionic) utilisera désormais xorg par défaut, mais wayland reste une option sur l'écran de connexion: blog.ubuntu.com/2018/01/26/…
Kris
Je dirais que X est meilleur. Je ne voudrais pas entrer dans des trucs techniques. Mais je dirai simplement que j’ai laissé tomber des images sur YouTube avec Wayland si je redimensionnais la fenêtre ou si je passais en plein écran. Avec X, pas de problème. Même si la vitesse est la même. Le curseur de la souris Wayland semble également plus lâche que sur X. X est toujours mon no1
Luka

Réponses:

136

Vous pouvez voir la page d'architecture Wayland pour voir en quoi elle diffère dans sa conception. Il est supposé simplifier toute la pile graphique en forçant tout dans une pile GEM / DRM standard directement dans le noyau et en gérant la composition elle-même.

Comparez cela à la pile X où vous avez des bits et des bobs partout. Une partie du désordre X a été faite grâce à une conception flexible, certaines ont été de plus en plus douloureuses. Tous les compositeurs (Compiz / Metacity / Mutter / KWin / etc) ont été ajoutés après coup. Ils sont, à la base, des bidouilleurs pour faire ce que X devrait probablement faire lui-même. Si les choses continuent à se développer comme avant, nous en arriverons à un point où le projet deviendra intolérable.

Globalement, lorsque le support matériel est disponible, il convient de rendre l’ensemble de la pile plus efficace et moins pénible à utiliser dans les configurations standard.

Cependant, il y a quelques problèmes pour lesquels je n'ai pas vu de solution jusqu'à présent:

  • X est assez conscient du réseau. Vous pouvez envoyer des fenêtres à d'autres ordinateurs, vous pouvez avoir plusieurs écrans avec des connexions à distance et toutes sortes de choses géniales comme ça. Cela peut sembler assez spécialisé, mais c'est une technologie largement utilisée. Wayland semble assez local et statique en comparaison.

  • Il y a aussi le support des pilotes. Les pilotes de sources fermées ne prennent pas encore en charge les technologies KMS / shared-GEM / shared-DRM sur lesquelles prospère Wayland. Un puriste peut être d'accord avec Nouveau, mais quelqu'un qui paye entre 100 et 400 euros sur une carte graphique 3D hautes performances ne sera pas satisfait de la performance 3D médiocre obtenue avec le pilote ouvert actuel.

    Mise à jour: Nvidia travaille pour supporter à la fois Wayland et Mir .


Mise à jour 2018 . 17.10 utilisait Wayland comme serveur d'affichage par défaut (sauf si vous aviez un pilote fermé, un pilote qui ne le supportait pas ou si vous n'aviez pas besoin de X). 18.04 et 18.10 utilisent tous les deux X comme valeur globale par défaut (bien que vous puissiez installer Wayland).

Je ne suis en charge de rien, mais à partir de cette position, il semble que nous soyons toujours un métrique sur Nvidia, loin d'avoir une véritable traction. Jusque-là, je ne pense pas que nous allons voir suffisamment d’esprit et de puissance en développement passer derrière Wayland. Le marché des jeux / performances utilise X. Le marché MCE utilise X (et les framebuffers directs). Je ne suis pas sûr que Wayland aura une chance réelle.

Oli
la source
21
La transparence du réseau est largement dépassée pour plusieurs raisons. 1. Le transfert Pure X n’est assez rapide que sur un réseau local. Sur Internet, X brut est inutilisable en raison de la latence. Pour obtenir des performances correctes, vous devez utiliser des protocoles tiers tels que NX ou VNC. 2. NX et VNC sont tous deux très difficiles à configurer en raison de l'architecture de X. Cela devrait être plus facile avec Wayland. 3. Peu de boîtes à outils modernes utilisent le code de dessin de X. Ils se dessinent simplement dans un bitmap et l'envoient à X. C'est exactement la même chose que Wayland et auront les mêmes caractéristiques de réseau.
Timmmm
4
Je suis d'accord avec le point 1 mais sur un bon réseau local, la retransmission X est intouchable pour la qualité ou la performance. Beaucoup mieux que l'une ou l'autre alternative dans mon expérience.
Oli
1
En ce qui concerne la transparence du réseau, la situation est plus claire en 2013: askubuntu.com/a/359870/203271
Diego
2
@poolie: Il semble qu'ils aient changé d'avis. ;-)
Peque
2
De BionicBeaver / ReleaseNotes : "X est le serveur d'affichage par défaut. Wayland est fourni en tant qu'aperçu technique et devrait être le serveur d'affichage par défaut dans 20.04 LTS . Pour l'essayer, il suffit de choisir Ubuntu sur Wayland dans le cog de la connexion. Les journaux X.org se trouvent maintenant sur ~ / .local / share / xorg "[souligné par moi]
Dennis Williamson le
56

Il y a beaucoup de différences entre X et Wayland. Le plus gros du côté graphique est probablement le fait que Wayland ne dessine pas .

X a deux API de dessin. L'un d'eux fait partie du protocole de base X11, qui est ancien, inutile et que personne n'utilise. L’autre est l’extension XRender, qui fournit des opérations composites modernes, entre autres des dégradés. C'est ce que le Caire, par exemple, utilise. X a également des API de dessin de polices.

Wayland n'a pas d'API de dessin. Un client Wayland obtient un descripteur de tampon DRM, qui est essentiellement un pointeur sur une mémoire graphique; Wayland ne sait pas ou ne se soucie pas de savoir comment le client puise dans cette mémoire tampon. En termes X, cela signifie que toutes les applications obtiennent un rendu direct - les demandes de dessin n’ayant pas besoin de passer par le serveur.

Le seul rendu que fait Wayland consiste à copier les tampons du client sur l'écran.

En termes d'avantages, Wayland est beaucoup moins complexe que X qui devrait le rendre plus facile à maintenir - même si une partie de cette simplicité vient de pousser la complexité (par exemple: comment effectivement tirer sur ce tampon, la transparence du réseau) à d' autres couches de la empiler. En rendant les clients responsables de tous leurs rendus, ils peuvent être plus intelligents dans des domaines tels que la double mise en tampon.

Il y a d'autres avantages en dehors des graphiques. C'est beaucoup plus facile pour les applications en bac à sable, par exemple.

RAOF
la source
2
Cela ressemble-t-il à Microsoft DirectX?
Anwar
3
J'utilise l'API de dessin du protocole X11, car elle est plus rapide que XRender.
étale-cohomology
3
Je reçois aussi Microsoft par Wayland et systemd. Et non, ce n'est pas une bonne chose. Ils enfreignent les règles de base du développement logiciel. Dans systemd simplement parce que c'est plus facile pour les développeurs de systemd. En chemin parce qu'ils veulent des jeux plus rapides (?) Et un rendu, et jettent beaucoup de bonnes choses avec ça.
Anders
18

La principale différence à mes yeux est que Wayland est plus proche du noyau que X-Server. Avec le déplacement des pilotes graphiques de X vers le noyau (KMS, réglage du mode noyau), Wayland prévoit d’utiliser cette nouvelle fonctionnalité pour remplacer X. Vous pourriez vous attendre à voir ce qui suit ...

Empreinte moins importante que X - car l'affichage est géré par le noyau, Wayland n'aura pas à en implémenter autant pour devenir utilisable. Cela va dans les deux sens car je suppose que le transfert de X (regardez un écran sur un autre PC) peut disparaître avec X.

Fonctionnalités KMS: pouvoir modifier la résolution de l'écran sans redémarrer le serveur X (même si je pense que cela a été corrigé dans X il y a quelque temps, du moins pour nvidia), console de débogage sur la panique du noyau pour les chipsets intel (passer à nouveau) si vous êtes intéressé ce genre de chose.

Quelqu'un peut-il me corriger si je me trompe?

TGM
la source
4
KMS & GEM ne déplace pas les pilotes graphiques vers le noyau, seules quelques petites pièces sont déplacées vers le noyau (les bits qui parlent directement au matériel et doivent être dans le noyau de telle sorte que différents pilotes puissent coexister, par exemple écriture sur les ports d’E / S et gestion de la mémoire). KMS & GEM sont déjà utilisés par X aujourd'hui, du moins pour les pilotes open source modernes (intel, radeon, nouveau). BTW: Je doute sérieusement que le déplacement de l'ensemble du pilote graphique vers le noyau soit accepté par Linus ...;)
janvier
4
Oh, et KMS n’a jamais été nécessaire pour changer la résolution de l’écran (ce qui est possible depuis que j’utilise X depuis plus de 10 ans), mais il autorise différents pilotes (par exemple, le pilote framebuffer de la console, les pilotes X et maintenant les pilotes Wayland). coopérer plus facilement. Dans le passé, il n’était pas toujours évident pour chacun d’entre eux dans quel «état» se trouvait le matériel graphique à un moment donné, et de nombreuses solutions de contournement propriétaires ou dépendantes du pilote étaient utilisées.
janvier
1
Il n’est pas tout à fait vrai que le transfert X disparaisse, car X peut toujours être utilisé en tant que client sur Wayland. wayland.freedesktop.org en a un exemple. Mais X est quand même une façon assez horrible de faire ce genre de chose. Il est temps de le remplacer. Dans de nombreux cas, il semble que des solutions comme GTK avec Broadway seraient une meilleure approche.
Jo-Erlend Schinstad le
3
L'extension RandR vous permet de changer la résolution de l'écran sans redémarrer le serveur X.
Anonyme
14

Tous les autres articles mettent en évidence les avantages de Wayland, mais ce n’est pas seulement une bonne chose. Le principal avantage de X par rapport à Wayland est que X fonctionne sur le réseau. X est transparent au réseau, vous pouvez afficher la fenêtre, ou avec XDMCP une session complète, sur un terminal pendant que le programme réel est exécuté sur une autre machine, généralement plus puissante. Avec quelque chose comme Wayland, l’idée de la transparence du réseau a disparu. Peut-être que cela n’est pas tellement nécessaire de nos jours avec les réseaux rapides et d’autres protocoles tels que VNC et RDP, je pensais juste que je le mentionnerais par souci d’exhaustivité.

Christian Hujer
la source
C’est exactement ce que je considère également comme le plus gros avantage du X par rapport au Wayland proposé.
Kris Jace
7

En termes simples, l’espoir est d’améliorer les graphiques (moins de bugs, plus rapide, plus facile à utiliser). Même les choses pourraient être possibles un jour qui n'étaient pas avant. Personnellement, je pense que cela va au moins pimenter les choses, comme le fait toujours la concurrence.

je fais
la source
3

Deux petites choses que tout le monde remarquera assez rapidement dans le travail quotidien:

  • Wayland supprime les morceaux de papier jugés trop difficiles à résoudre dans X11. Un exemple célèbre: utiliser les touches de fonction (volume du haut-parleur, luminosité de l'écran, etc.) lorsqu'un menu est ouvert ou que l'écran de verrouillage est activé.
  • Wayland est meilleur pour les périphériques d'entrée. D'une part, il existe de nombreuses autres options pour configurer les pavés tactiles, y compris un paramètre de prise par clic persistant.
Nico Schlömer
la source
1
Wayland est pire si un programme est verrouillé pour une raison. Avoir des WM différents est une bonne chose. J'utilise le réseau X11 régulièrement (chaque jour). Un programme a cessé de fonctionner à Wayland (j'utilise Ubuntu 18.04)
Anders