Wayland (display server protocol)
Wayland demonstration |
|
| Original author(s) | Kristian Høgsberg |
|---|---|
| Initial release | 2008 |
| Stable release | 0.85.0 / 9 February 2012[1] |
| Development status | Alpha |
| Written in | C |
| Operating system | Unix-like |
| Type | Display server |
| License | MIT |
| Website | wayland.freedesktop.org |
Wayland is a display server protocol for the Unix-like operating systems and a library for Linux implementing that protocol.[2]
Wayland provides a method for compositing window managers to communicate directly with applications and video hardware and expects them to communicate with input hardware using other libraries. Applications render graphics to their own buffers, and the window manager becomes the display server, compositing those buffers to form the on-screen display of application windows. This is a simpler and more efficient approach than using a compositing window manager with the X Window System.[3]
Contents |
[edit] Background
Kristian Høgsberg (krh), a software engineer who works on the GNU/Linux graphics stack, started Wayland as a spare-time project in 2008, while working for Red Hat;[4] he is now at Intel.[5] His earlier work on X included AIGLX,[6] and involvement in the creation of DRI2.[7][8] His stated goal was a system in which "every frame is perfect, by which I mean that applications will be able to control the rendering enough that we'll never see tearing, lag, redrawing or flicker."
Wayland is free software, and the libraries (libwayland-server and libwayland-client) were released under the MIT License, with the demo compositor and clients originally under the GPLv2 license. Moving the whole project to LGPLv2 was planned but did not occur and the project is now switching fully to the MIT License.[9][10] As of November 2010[update], Wayland only works with free and open source drivers for Intel, AMD (previously known as ATI) and Nvidia (nouveau driver) graphics cards.[11] As of November 2010[update], Nvidia has no plans to support it in their proprietary drivers.[12]
The name "Wayland" comes from Wayland, MA. Høgsberg was driving through that town when the concepts behind Wayland "crystallized".[13]
[edit] Planned adoption
- Ubuntu
- Mark Shuttleworth announced plans to eventually replace X with Wayland as the primary Ubuntu display server with their Unity desktop.[14]
- Fedora
- Adam Jackson (ajax) said that Fedora is likely to eventually use Wayland by default, “…because it's a serious win for a lot of things, and the downsides are pretty negligible despite the fear from the peanut gallery.”[15]
- KDE
- KWin, the KDE window manager, added support for OpenGL ES output.[16] It shipped with KDE SC 4.7. [17] So far KWin has received its initial port to Wayland.[18] In January 2012 KDE hopes to support Wayland under X with release KDE SC 4.8 and to run directly on Wayland in summer 2012 in the KDE SC 4.9 release.[19]
- Compiz
- Canonical Ltd., owner of Ubuntu, hired Sam Spilsbury,[20] primary Compiz developer. He has been moving Compiz dependencies on X into a plugin. This will make it easier to enable Compiz to become a Wayland display server.[21] Canonical is planning to help port Compiz to OpenGL ES, currently a requirement for Wayland display servers.[22]
[edit] Design
In recent years, GNU/Linux desktop graphics has moved from having "a pile of rendering interfaces... all talking to the X server, which is at the center of the universe" towards putting the Linux kernel "in the middle", with "window systems like X and Wayland ... off in the corner". This will be "a much-simplified graphics system offering more flexibility and better performance".[23]
Høgsberg could have added an extension to X as many recent projects have done, but preferred to "[push] X out of the hotpath between clients and the hardware" for reasons explained in the project's FAQ:[24]
What's different now is that a lot of infrastructure has moved from the X server into the kernel (memory management, command scheduling, mode setting) or libraries (cairo, pixman, freetype, fontconfig, pango etc) and there is very little left that has to happen in a central server process. ... [An X server has] a tremendous amount of functionality that you must support to claim to speak the X protocol, yet nobody will ever use this. ... This includes code tables, glyph rasterization and caching, XLFDs (seriously, XLFDs!) Also, the entire core rendering API that lets you draw stippled lines, polygons, wide arcs and many more state-of-the-1980s style graphics primitives. For many things we've been able to keep the X.org server modern by adding extension such as XRandR, XRender and COMPOSITE ... With Wayland we can move the X server and all its legacy technology to an optional code path. Getting to a point where the X server is a compatibility option instead of the core rendering system will take a while, but we'll never get there if [we] don't plan for it.
Wayland consists of a protocol (largely complete) and some demonstration code. Currently, the Wayland code uses OpenGL ES, rather than the more traditional (in desktops) OpenGL.[25] "Longer term we'll need an answer for apps that need full [OpenGL], but the problem is that libGL pulls in GLX and all the X dependencies."[26] The project is also developing versions of GTK+ and Qt that render to Wayland instead of to X. Most applications are expected to gain support for Wayland through one of these libraries without modification to the application.
Wayland does not currently provide network transparency, but it may in the future.[27]
Adam Jackson has envisioned providing remote access to a Wayland application by either 'pixel-scraping' (like VNC) or getting it to send a "rendering command stream" across the network (as in RDP, SPICE or X11).[28]
Because it requires Linux-specific features such as udev,[29] and KMS, Wayland only works with the Linux kernel.
[edit] Backward compatibility with X
X11 applications are supported through an X server, optionally rootless, running as Wayland client.[30] This does not depend on Intel drivers since June 2011. At the same time, the term was changed from "X.org hosted" to "xwayland".[31]
Qt applications can switch between graphical backends like X and Wayland at run time with the -platform command line option.[32] In January 2011, Wayland support was moved into the Lighthouse branch of the upstream Qt repository.[33] Qt Lighthouse is shipped in the Qt 4.8 release.[34]
In December 2010, GTK+ added preliminary support for switching backends at run time, saying "interesting combinations are X11+Wayland or Quartz+X11".[35][36] In January 2011, the GTK+ Wayland backend was updated to support the multiple-backends feature and moved to the gdk-wayland-backend branch of the upstream GTK+ Git repository.[37] In April 2011, the gdk-wayland-backend branch was merged in the GTK+ master branch.
[edit] See also
[edit] References
- ^ http://lists.freedesktop.org/archives/wayland-devel/2012-February/002072.html
- ^ "Wayland". http://wayland.freedesktop.org/. "Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol."
- ^ "Wayland Architecture". Wayland project. 5 November 2010. http://wayland.freedesktop.org/architecture.html. Retrieved 10 August 2011.
- ^ Kristian Høgsberg. "Wayland - A New Display Server for Linux". Linux Plumbers Conference, 2009. http://linuxplumbersconf.org/ocw/users/73. (Video available here)
- ^ Kristian Høgsberg. "EGL and GLES1/2 on Linux". Linux Plumbers Conference, 2010. http://www.linuxplumbersconf.org/2010/ocw/proposals/1005.
- ^ "Interview: Kristian Høgsberg". FOSDEM 2007. 6 February 2007. http://archive.fosdem.org/2007/interview/kristian+hoegsberg.
- ^ Kristian Høgsberg (8 September 2008). "DRI2 Protocol Spec Draft". http://lists.x.org/archives/xorg/2008-September/038323.html.
- ^ Kristian Høgsberg (31 March 2008). "DRI2 Direct Rendering". http://hoegsberg.blogspot.com/2008/03/i-just-committed-last-bit-of-dri2-work.html.
- ^ Larabel, Michael (22 November 2010). "Wayland License Changing To LGPLv2". Phoronix. http://www.phoronix.com/scan.php?page=news_item&px=ODgxNQ. Retrieved 21 September 2011.
- ^ Larabel, Michael (20 September 2011). "Wayland Reference Code Being Re-Licensed". Phoronix. http://www.phoronix.com/scan.php?page=news_item&px=OTkyNQ. Retrieved 21 September 2011.
- ^ Michael Larabel (8 November 2010). "NVIDIA Says It Has No Plans To Support Wayland". Phoronix. http://www.phoronix.com/scan.php?page=news_item&px=ODc2Mg.
- ^ Aaron Plattner, nvidia's primary Linux developer (7 November 2010). "nvidia and the wayland display server". http://www.nvnews.net/vbulletin/showthread.php?p=2343452#postmenu_2343452. "We have no plans to support Wayland."
- ^ Evan Jenkins (March 2011). "The Linux graphics stack from X to Wayland". Ars Technica. http://arstechnica.com/open-source/guides/2011/03/the-linux-graphics-stack-from-x-to-wayland.ars.
- ^ Mark Shuttleworth (4 November 2010). "Unity on Wayland". http://www.markshuttleworth.com/archives/551. "The next major transition for Unity will be to deliver it on Wayland...."
- ^ Adam Jackson (ajax) (9 November 2010). "[Re:] Ubuntu moving towards Wayland". http://lists.fedoraproject.org/pipermail/devel/2010-November/145273.html.
- ^ Martin Gräßlin (28 November 2010). "KWin runs on OpenGL ES". http://blog.martin-graesslin.com/blog/2010/11/kwin-runs-on-opengl-es/. "It does not only help, it is a must have to start working for Wayland. So to say it’s the first part of the KWin port to Wayland"
- ^ On the Road to Modern OpenGL (ES)
- ^ Martin Gräßlin (11 June 2011). "KWin goes Wayland". http://quickgit.kde.org/?p=kde-workspace.git&a=commit&h=e62eed99761646ba69e4154ae01087e19342922b. "Initial Implementation of a Wayland Server in KWin"
- ^ Michael Larabel (7 August 2011). "KDE Draws Up Plans For Wayland In 2012". http://www.phoronix.com/scan.php?page=article&item=wayland_kde_2012&num=2. "but the first phase (Wayland under X) should be achieved for the winter release of KDE (Software Compilation 4.8, due out next January). Martin hopes that the second phase of the Wayland upbringing, where KDE is working directly atop Wayland, will be ready for the summer 2012 release (KDE SC 4.9)."
- ^ Sam Spilsbury (25 November 2010). "A bright new future for Compiz". http://smspillaz.wordpress.com/2010/10/25/a-bright-new-future-for-compiz/. "...I was also hired by Canonical Ltd..."
- ^ Sam Spilsbury (7 November 2010). "Compiz in a strange new land". http://smspillaz.wordpress.com/2010/11/07/compiz-in-a-strange-new-land/.
- ^ deebeeoh. "I am an Ubuntu Unity Developer, AMA". http://www.reddit.com/r/IAmA/comments/en0ti/i_am_an_ubuntu_unity_developer_ama/. Retrieved 12 January 2010. "We are going to be helping compiz port to OpenGL ES"
- ^ Jonathan Corbet (5 November 2010). "Linux Plumbers Conference: Life after X (reporting a talk by Keith Packard)". LWN.net. http://lwn.net/Articles/413335/.
- ^ "Wayland FAQ". http://wayland.freedesktop.org/faq.html. Retrieved 17 February 2011.
- ^ Michael Larabel (6 June 2010). "Wayland Meets Some Summer Love w/ New Changes". Phoronix. http://www.phoronix.com/scan.php?page=news_item&px=ODMyNA.
- ^ Kristian Høgsberg (9 December 2010). "Blender3D & cursor clamping.". http://lists.freedesktop.org/archives/wayland-devel/2010-December/000330.html.
- ^ Kristian Høgsberg (9 November 2010). "Network transparency argument". http://lists.freedesktop.org/archives/wayland-devel/2010-November/000097.html. "Wayland isn't a remote rendering API like X, but that doesn't exclude network transparency. Clients render into a shared buffer and then have to tell the compositor (...) what they changed. The compositor can then send the new pixels in that region out over the network. The Wayland protocol is already violently asynchronous, so it should be able to handle a bit of network lag gracefully. Remote fullscreen video viewing or gaming isn't going to work well, [but] I don't know any other display system that handles that well and transparently."
- ^ Adam Jackson (ajax) (9 November 2010). "[Re:] Ubuntu moving towards Wayland". http://lists.fedoraproject.org/pipermail/devel/2010-November/145306.html.
- ^ README file from the Wayland source code repository
- ^ Darxus (27 November 2010). ""hosted" patch for nouveau - X under Wayland". http://lists.freedesktop.org/archives/wayland-devel/2010-November/000292.html. "It's possible to run X.org as a client of Wayland, rootless or not, if you have an Intel video card"
- ^ Corentin Chary (2011-06-21). "Introducing xwayland and xf86-video-wlshm". http://lists.freedesktop.org/archives/wayland-devel/2011-June/001163.html. "This driver really make things easy to test, since you don't need any specific hardware...."
- ^ "Getting started with Lighthouse". http://qt.gitorious.org/qt/pages/GettingStartedWithLighthouse. Retrieved 17 December 2010.
- ^ Kristian Høgsberg (25 January 2011). "Add wayland lighthouse plugin". http://qt.gitorious.org/+qt-developers/qt/lighthouse/commit/6c5ea196ff086b92687033208f15e36591dc70f6.
- ^ Nokia (15 December 2011). "Qt Lighthouse git-repository". https://gitorious.org/+qt-developers/qt/lighthouse.
- ^ Michael Larabel (22 December 2010). "GTK+3 Now Uses X Input 2 By Default, New Back-End Caps". http://www.phoronix.com/scan.php?page=news_item&px=ODk0Ng.
- ^ Matthias Clasen (21 December 2010). "GTK+ 2.91.7 released". http://mail.gnome.org/archives/gnome-announce-list/2010-December/msg00036.html.
- ^ Kristian Høgsberg (3 January 2011). "Multiple backends for GTK+". http://hoegsberg.blogspot.com/2011/01/multiple-backends-for-gtk.html.
[edit] External links
- Official website
- Wayland at FOSDEM 2012 by Kristian Høgsberg
- source code repository
- Kristian Høgsberg's blog
- Wayland Display server demonstration on YouTube
- The way to Wayland: Preparing for life After X Joe 'Zonker' Brockmeier, LWN, 17 November 2010
- Wayland build script for Ubuntu
- Wayland - Beyond X by Richard Hillesley, h-online, 13 February 2012
|
|||||||||||||||||||||||
|
||||||||||||||||