URL: https://linuxfr.org/users/claudex/journaux/la-transparence-reseau-et-wayland Title: La transparence réseau et Wayland Authors: claudex Date: 2016年02月21日T17:31:03+01:00 License: CC By-SA Tags: wayland Score: 44 Cher journal, Je sais que parfois tu t'inquiète que lors du passage à Wayland, tu vas perdre la transparence réseau. Et bien rassure-toi, Derek Foreman a pensé à toi, d'ailleurs, il y a pensé il y a deux semaines mais je n'ai pas vu passer l'info. [Comme il l'écrit dans sa demande de patch](https://lists.freedesktop.org/archives/wayland-devel/2016-February/026933.html), il a vu une présentation qui disait que si on poussais le protocole Wayland via TCP/IP, ce serait toujours une meilleure transparence réseau que X. Du coup, il l'a implémenté (facile, j'allais le faire aussi mais j'avais piscine). Alors, pour l'instant, ça n'est pas vraiment prêt, il n'y a d'ailleurs aucune sécurité. Ajouter son patch (d'une ligne[^1]) dans Weston ouvre une socket qui permet à n'importe qui d'avoir accès au compositeur, mais ça a l'air d'être déjà utilisable (comme je le disais, j'ai piscine, du coup, je n'ai pas testé). Il a décrit les trois problèmes majeurs de la transparence réseau dans Wayland. - Le premier est le passage de descripteurs de fichiers dans le protocole. Passer un descripteur de fichier via le réseau n'a pas beaucoup de sens. Un exemple d'utilisation de ces descripteurs est le passage de la keymap, le client reçoit un fd, fait un mmap dessus et peut le lire, les messages Wayland étant limités à 4kb et la keymap faisant plus que ça, ça permet de contourner le problème. - Le deuxième, qui me semble moins grave, ou plus facile à résoudre (pour ceux qui ne sont pas en maillot), c'est les input clavier, s'il y a un délais entre le message d'enfonçage de la touche et celui de ça libération, cela va générer une répétition de la touche non voulue. - Le troisième problème est le transfert de tampon entre le client et le compositeur qui se fait de plusieurs façon (mémoire partagée (mmap, dmabuf), extension mesa...). Ils ne sont pas prévu pour passer par le réseau. Je ne vais pas décrire sa méthode de résolution du problème dans Wayland, parce que je ne connais pas assez le sujet. Il a en tout cas codé un système pour transférer tout ça via le réseau. Son implémentation a encore plusieurs problèmes qu'il relève : - Pas de compression des images via le réseau (encore une fois, ça ne me semble pas un problème insoluble) - Le « dammage tracking », c'est à dire la zone à redessiner en cas de changement est très mal calculé, il calcule juste un rectangle entre le deux points les plus éloignés qui ont changé. C'est-à-dire que si vous changez deux pixels à chaque coin de l'écran, il faut tout redessiner. - Le client doit utiliser *wl_shm* pour échanger son tampon, il n'est pas possible d'utiliser EGL ou dmabuf. Pour plus d'information, je te laisse lire [son article](http://blogs.s-osg.org/wow-wayland-over-wire/) [^1]: le reste du code n'est pas dans le compositeur, il n'a pas juste écrit une ligne de code.