What is Wayland Architecture?
Homepage:
http://wayland.freedesktop.org/
From wiki:
http://en.wikipedia.org/wiki/Wayland_(display_server_protocol)
To quote:
Wayland is a protocol that specifies the communication between the display server and its clients.[3] It was initially designed by Kristian Høgsberg as a replacement for the X Window System. In stark contrast to the latter, Wayland specifies that the clients are responsible for the drawing of their window borders and their decorations and the clients will render without detour directly into their own buffer located in the graphics memory, through the use of EGL with some additional Wayland-specific extensions to EGL.
And the details are partly shown below:
① The evdev module of the Linux kernel gets an event and sends it to the Wayland compositor.
② The Wayland compositor looks through its scenegraph to determine which window should receive the event. The scenegraph corresponds to what’s on screen and the Wayland compositor understands the transformations that it may have applied to the elements in the scenegraph. Thus, the Wayland compositor can pick the right window and transform the screen coordinates to window local coordinates, by applying the inverse transformations. The types of transformation that can be applied to a window is only restricted to what the compositor can do, as long as it can compute the inverse transformation for the input events.
③ As in the X case, when the client receives the event, it updates the UI in response. But in the Wayland case, the rendering happens by the client via EGL, and the client just sends a request to the compositor to indicate the region that was updated.
④ The Wayland compositor collects damage requests from its clients and then re-composites the screen. The compositor can then directly issue an ioctl to schedule a pageflip with KMS
More resources below:
Wayland Input Method System Proposal
https://wiki.maliit.org/Wayland_Input_Method_System_Proposal
The Wayland Compositor Architecture
https://01.org/linuxgraphics/sites/default/files/documentation/wayland-osts.pdf
What does EGL do in the Wayland stack
http://ppaalanen.blogspot.sg/2012/03/what-does-egl-do-in-wayland-stack.html
Introduction to Wayland
https://www.tizen.org/sites/default/files/lfcs2012_barnes.pdf
How to embrace wayland for Tizen
Why Wayland is better:
http://askubuntu.com/questions/11537/why-is-wayland-better
Compositing after X KWin on the Road to Wayland
https://community.kde.org/images.community/0/01/KWin_Wayland.pdf
Wayland Vs X Server Architecture (in Greek, can use Google Chrome to view, which will allow you to translate)
http://osarena.net/hacks-guides/wayland-vs-x-server-architecture.html
Wayland: Choosing a better input method architecture
David Airlie: Teaching the X server new tricks (LCA 2013)
Latest:
Welcome to Chromium’s Ozone-Wayland (September 18, 2013)
http://vignatti.com/2013/09/18/welcome-to-chromiums-ozone-wayland/
http://vignatti.com/2013/03/05/ui-customization-on-wayland/
http://vignatti.com/2012/10/17/the-damn-small-wayland-api/
http://vignatti.com/2012/06/13/x-on-wayland/
http://vignatti.com/2012/01/18/starting-on-wayland-development/
http://www.freiesmagazin.de/mobil/freiesMagazin-2011-08-bilder.html
Wayland on Android:
http://ppaalanen.blogspot.sg/2012/07/wayland-on-android-snapshot-release.html
Wayland’s 1.0 milestone fixes graphics protocol
http://worldofgnome.org/gnome-wayland/
X on Wayland
http://vignatti.com/2012/06/13/x-on-wayland/
Wayland prototype for rendering software that runs remotely
Posted by Learning about Linux graphics stack | Life in Linux Kernel on October 13, 2014 at 2:22 am
[…] https://tthtlc.wordpress.com/2013/09/24/linux-graphics-gpu-x-wayland-architecture/ […]