Misplaced Pages

Wayland (protocol): Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 13:26, 13 February 2011 editThumperward (talk | contribs)Administrators122,813 edits move quote into ref, remove tag again per previous user's edit summary← Previous edit Revision as of 15:05, 13 February 2011 edit undo1exec1 (talk | contribs)Pending changes reviewers, Rollbackers50,085 edits Reverted 2 edits by Thumperward (talk); Note, that **you** are the one who changes the referencing style without consensus, thus it is **your** responsibility to undo it. (TW)Next edit →
Line 1: Line 1:
{{Infobox Software
{{ infobox software
| name = Wayland | name = Wayland
| logo = ] | logo = ]
| screenshot = <!-- ] --> | screenshot = <!-- ] -->
| caption = Wayland Display Server logo | caption =
| collapsible =
| author = Kristian Høgsberg | author = Kristian Høgsberg
| developer = | developer =
Line 20: Line 21:
| status = Alpha | status = Alpha
| genre = Display server | genre = Display server
<!-- The FAQ has not been updated since the change to LGPL was announced -->
| license = ] v2<ref name="license">{{ cite web | url = http://lists.freedesktop.org/archives/wayland-devel/2010-November/000249.html | title = Wayland license clarification | author = Kristian Høgsberg | date = 2010-11-22 }}</ref>
| license = ] v2<ref name="license">{{cite web
|url=http://lists.freedesktop.org/archives/wayland-devel/2010-November/000249.html
|title=Wayland license clarification
|author=Kristian Høgsberg
|date=2010-11-22
}}</ref>
| website = http://wayland.freedesktop.org/ | website = http://wayland.freedesktop.org/
}} }}


'''Wayland''' is a display server ] for the ] and a library implementing that protocol.<ref>{{ cite web | url = http://wayland.freedesktop.org/ | title = Wayland | quote = Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol. }}</ref> '''Wayland''' is a display server ] for the ] and a library implementing that protocol.<ref>{{cite web
|url=http://wayland.freedesktop.org/
|title=Wayland
|quote=Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.
}}
</ref>


Wayland provides a method for ]s to communicate directly with ], eliminating their dependence on ], allowing them to communicate directly with video and input hardware, becoming the display server. Applications render graphics to their own buffers, and a Wayland display server composites those buffers into the screen image. This is a simpler and more efficient approach than using a ] with the ].<ref name=WaylandArch>{{ cite web | title = Wayland Architecture | url = http://wayland.freedesktop.org/architecture.html | publisher = Wayland project}}</ref>{{self-published-inline|date=February 2011}} Wayland provides a method for ]s to communicate directly with ], eliminating their dependence on ], allowing them to communicate directly with video and input hardware, becoming the display server. Applications render graphics to their own buffers, and a Wayland display server composites those buffers into the screen image. This is a simpler and more efficient approach than using a ] with the ].<ref name=WaylandArch>{{cite web
|title=Wayland Architecture
|url=http://wayland.freedesktop.org/architecture.html
|publisher=Wayland project}}</ref>


== Background == == Background ==


Wayland is still a work in progress. ] (krh), a software engineer who works on the Linux graphics stack, started Wayland as a spare-time project in 2008, while working for ];<ref>{{cite web
] (krh), a software engineer who works on the Linux graphics stack, started Wayland as a spare-time project in 2008, while working for ];<ref>{{ cite web | url = http://linuxplumbersconf.org/ocw/users/73 | title = Wayland - A New Display Server for Linux | author = Kristian Høgsberg | publisher = Linux Plumbers Conference, 2009}} (Video available )</ref> he is now at ].<ref>{{ cite web | url = http://www.linuxplumbersconf.org/2010/ocw/proposals/1005 | title = EGL and GLES1/2 on Linux | author = Kristian Høgsberg | publisher = Linux Plumbers Conference, 2010}}</ref> His earlier work on X included ],<ref>{{ cite web | url = http://archive.fosdem.org/2007/interview/kristian+hoegsberg | title = Interview: Kristian Høgsberg | publisher = ] 2007 |date=2007-02-06}}</ref> and involvement in the creation of DRI2.<ref>{{ cite web | url = http://lists.x.org/archives/xorg/2008-September/038323.html | title = DRI2 Protocol Spec Draft | date = 2008-09-08 | author = Kristian Høgsberg }}</ref><ref>{{ cite web | url = http://hoegsberg.blogspot.com/2008/03/i-just-committed-last-bit-of-dri2-work.html | title = DRI2 Direct Rendering | date = 2008-03-31 | author = Kristian Høgsberg }}</ref> 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."<ref>{{ cite news | url = http://www.phoronix.com/scan.php?page=article&item=xorg_wayland | title = Wayland: A New X Server For Linux | author = Michael Larabel |date=2008-11-03 |publisher=]}}</ref>
|url=http://linuxplumbersconf.org/ocw/users/73
|title=Wayland - A New Display Server for Linux
|author=Kristian Høgsberg
|publisher=Linux Plumbers Conference, 2009}} (Video available )</ref>
he is now at ].<ref>{{cite web
|url=http://www.linuxplumbersconf.org/2010/ocw/proposals/1005
|title=EGL and GLES1/2 on Linux
|author=Kristian Høgsberg
|publisher=Linux Plumbers Conference, 2010}}</ref>
His earlier work on X included ],<ref>{{cite web
|url=http://archive.fosdem.org/2007/interview/kristian+hoegsberg
|title=Interview: Kristian Høgsberg
|publisher=] 2007 |date=2007-02-06}}</ref> and involvement in the creation of DRI2.<ref>{{cite web
|url=http://lists.x.org/archives/xorg/2008-September/038323.html
|title=DRI2 Protocol Spec Draft
|date=2008-09-08
|author=Kristian Høgsberg
}}</ref><ref>{{cite web
|url=http://hoegsberg.blogspot.com/2008/03/i-just-committed-last-bit-of-dri2-work.html
|title=DRI2 Direct Rendering
|date=2008-03-31
|author=Kristian Høgsberg
}}</ref>
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."<ref>{{cite news
|url=http://www.phoronix.com/scan.php?page=article&item=xorg_wayland
|title=Wayland: A New X Server For Linux
|author=Michael Larabel |date=2008-11-03 |publisher=]}}<br>
(As Høgsberg ,
this title is incorrect: Wayland is not an X server.)</ref>


Wayland is ], and is released under the terms of the ] (LGPL) v2.<ref name="license" /> {{As of|2010|November}}, Wayland only works with open source drivers for ], ] (previously known as ATI) and ] (]) graphics cards.<ref>{{ cite news | url = http://www.phoronix.com/scan.php?page=news_item&px=ODc2Mg | title = NVIDIA Says It Has No Plans To Support Wayland | publisher = ] | author = Michael Larabel |date=2010-11-08}}</ref> {{As of|2010|November}}, Nvidia has no plans to support it in their proprietary drivers.<ref>{{ cite news | url = http://www.nvnews.net/vbulletin/showthread.php?p=2343452#postmenu_2343452 | title = nvidia and the wayland display server | author = Aaron Plattner, nvidia's primary linux developer | quote = We have no plans to support Wayland. | date = 2010-11-07}}</ref> Wayland is ], and will be released under the terms of the ] v2.<ref name="license" /> {{As of|2010|November}}, Wayland only works with open source drivers for ], ] (previously known as ATI) and ] (]) graphics cards.<ref>{{cite news
|url=http://www.phoronix.com/scan.php?page=news_item&px=ODc2Mg
|title=NVIDIA Says It Has No Plans To Support Wayland
|publisher=]
|author=Michael Larabel |date=2010-11-08}}
</ref> {{As of|2010|November}}, Nvidia has no plans to support it in their proprietary drivers.<ref>{{cite news
|url=http://www.nvnews.net/vbulletin/showthread.php?p=2343452#postmenu_2343452
|title=nvidia and the wayland display server
|author=Aaron Plattner, nvidia's primary linux developer
|quote=We have no plans to support Wayland.
|date=2010-11-07}}
</ref>


Høgsberg indicated that he came up with the name Wayland when driving through ]. Høgsberg indicated that he came up with the name Wayland when driving through ].


== Planned adoption == == Planned adoption ==
]


]
; ] (2010-09-08): ] is working on moving ] to Wayland.<ref>{{ cite video | date = 2010-09-07 | title = MeeGo* Graphics: Under the Hood | url = http://www.youtube.com/watch?v=YRYTCQqrFcA | time = 4:24 }}</ref>
; ] (2010-11-04): ] announced plans to eventually replace ] with Wayland as the primary ] display server with their ].<ref>{{ cite web | url = http://www.markshuttleworth.com/archives/551 | title = Unity on Wayland | author = ] | quote = The next major transition for Unity will be to deliver it on Wayland.... | date = 2010-11-04 }}</ref>
; ] {{nowrap|(2010-11-09): 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."<ref name=ajax-f15>{{ cite web | url = http://lists.fedoraproject.org/pipermail/devel/2010-November/145273.html | title = &#91;Re:&#93; Ubuntu moving towards Wayland | author = Adam Jackson (ajax) | date = 2010-11-09 }}</ref>


{|
Ubuntu and Fedora are the two most popular Linux distributions.<ref>{{ cite web|url = http://distrowatch.com/dwres.php?resource=major | title = Top Ten Distributions | accessdate = 2011-01-02}}</ref>
|- valign="top"
| ]
| {{nowrap|(2010-09-08)}}
| ] is working on moving ] to Wayland.<ref>
{{cite video
| date = 2010-09-07
| title = MeeGo* Graphics: Under the Hood
| url = http://www.youtube.com/watch?v=YRYTCQqrFcA
| time = 4:24
}}</ref>
|- valign="top"
| ]
| {{nowrap|(2010-11-04)}}
| ] announced plans to eventually replace ] with Wayland as the primary ] display server with their ].<ref>
{{cite web
|url=http://www.markshuttleworth.com/archives/551
|title=Unity on Wayland
|author=]
|quote=The next major transition for Unity will be to deliver it on Wayland....
|date=2010-11-04
}}</ref>
|- valign="top"
| ]
| {{nowrap|(2010-11-09)}}
| 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."<ref name=ajax-f15>
{{cite web
|url=http://lists.fedoraproject.org/pipermail/devel/2010-November/145273.html
|title=&#91;Re:&#93; Ubuntu moving towards Wayland
|author=Adam Jackson (ajax)
|date=2010-11-09
}}</ref>
|}

Ubuntu and Fedora are the two most popular Linux distributions.<ref>{{cite web|url = http://distrowatch.com/dwres.php?resource=major | title = Top Ten Distributions | accessdate = 2011-01-02}}</ref>


== Design == == Design ==
In recent years, 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".<ref>{{cite web |
| date = 2010-11-05
| author = Jonathan Corbet
| url=http://lwn.net/Articles/413335/
| title=Linux Plumbers Conference: Life after X (reporting a talk by ])
| publisher=LWN.net
}}</ref>


Høgsberg could have added an ] as many recent projects have done, but preferred to " X out of the hotpath between clients and the hardware" for reasons explained in the project's FAQ:<ref name=WaylandFAQ>{{cite web
In recent years, 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".<ref>{{ cite web | | date = 2010-11-05 | author = Jonathan Corbet | url = http://lwn.net/Articles/413335/ | title = Linux Plumbers Conference: Life after X (reporting a talk by ]) | publisher = LWN.net }}</ref>
|title=Wayland FAQ
|url=http://wayland.freedesktop.org/faq.html
|publisher=Wayland Project}}</ref>
{{quotation|What's different now is that a lot of infrastructure has moved from the X server into the kernel (memory management, command scheduling, ]) or libraries (], pixman, ], ], ] etc) and there is very little left that has to happen in a central server process. ... 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, ] (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 ], ] and ] ... 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 don't plan for it.}}


Wayland consists of a protocol (largely complete) and some demonstration code.
Høgsberg could have added an ] as many recent projects have done, but preferred to " X out of the hotpath between clients and the hardware" for reasons explained in the project's FAQ:<ref name=WaylandFAQ>{{ cite web | title = Wayland FAQ | url = http://wayland.freedesktop.org/faq.html | publisher = Wayland Project}}</ref>
Currently, the Wayland code uses ], rather than the more traditional (in desktops) ].<ref>{{cite news
|url=http://www.phoronix.com/scan.php?page=news_item&px=ODMyNA
|title=Wayland Meets Some Summer Love w/ New Changes
|author=Michael Larabel |date= 2010-06-06 |publisher=]}}</ref>
"Longer term we'll need an answer for apps that need full , but the problem is that libGL pulls in GLX and all the X dependencies."<ref>{{cite web | url = http://lists.freedesktop.org/archives/wayland-devel/2010-December/000330.html | title = Blender3D & cursor clamping. | date = 2010-12-09 | author = Kristian Høgsberg}}</ref>
The project is also developing versions of ] and ] 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 ], but it may in the future:
{{ quotation
{{quotation|
| What's different now is that a lot of infrastructure has moved from the X server into the kernel (memory management, command scheduling, ]) or libraries (], pixman, ], ], ] etc) and there is very little left that has to happen in a central server process. ... 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, ] (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 ], ] and ] ... 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 don't plan for it.
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
Wayland consists of a protocol (largely complete) and some demonstration code. Currently, the Wayland code uses ], rather than the more traditional (in desktops) ].<ref>{{ cite news | url = http://www.phoronix.com/scan.php?page=news_item&px=ODMyNA | title = Wayland Meets Some Summer Love w/ New Changes | author = Michael Larabel |date= 2010-06-06 |publisher=]}}</ref> "Longer term we'll need an answer for apps that need full , but the problem is that libGL pulls in GLX and all the X dependencies."<ref>{{ cite web | url = http://lists.freedesktop.org/archives/wayland-devel/2010-December/000330.html | title = Blender3D & cursor clamping. | date = 2010-12-09 | author = Kristian Høgsberg}}</ref> The project is also developing versions of ] and ] 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.
they changed. The compositor can then send the new pixels in that

region out over the network. The wayland protocol is already
Wayland does not currently provide ], but it may in the future.<ref>{{ cite web | url = http://lists.freedesktop.org/archives/wayland-devel/2010-November/000097.html | title = Network transparency argument | author = Kristian Høgsberg |date=2010-11-09 | quote = 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, I don't know any other display system that handles that well and transparently. }}</ref>
violently asynchronous, so it should be able to handle a bit of

network lag gracefully. Remote fullscreen video viewing or gaming
One person has envisaged providing remote access to a Wayland application by either 'pixel-scraping' (as in ] and ]) or getting it to send a "rendering command stream" across the network (like ]).<ref>{{ cite web | url = http://lists.fedoraproject.org/pipermail/devel/2010-November/145306.html | title = &#91;Re:&#93; Ubuntu moving towards Wayland | author = Adam Jackson (ajax) |date=2010-11-09}}</ref>
isn't going to work well, I don't know any other display system that
handles that well and transparently.
|Kristian Høgsberg
<ref>{{cite web
|url=http://lists.freedesktop.org/archives/wayland-devel/2010-November/000097.html
|title=Network transparency argument
|author=Kristian Høgsberg |date=2010-11-09}}</ref>}}
One person has envisaged providing remote access to a Wayland application by either 'pixel-scraping' (as in ] and ]) or getting it to send a "rendering command stream" across the network (like ]).<ref>{{cite web
|url=http://lists.fedoraproject.org/pipermail/devel/2010-November/145306.html
|title=&#91;Re:&#93; Ubuntu moving towards Wayland
|author=Adam Jackson (ajax) |date=2010-11-09}}</ref>


== Backward compatibility with X == == Backward compatibility with X ==
] applications are supported through an X server, optionally rootless, running as Wayland client, although currently it only supports Intel X.org drivers.<ref>
{{cite web
|url=http://lists.freedesktop.org/archives/wayland-devel/2010-November/000292.html
|author=Darxus
|title="hosted" patch for nouveau - X under wayland
|date=2010-11-27
|quote=It's possible to run X.org as a client of wayland, rootless or not, if
you have an Intel video card
}}
</ref>


] applications can switch between graphical backends like X and Wayland at ] with the -platform command line option.<ref>
] applications are supported through an X server, optionally rootless, running as Wayland client, although currently it only supports Intel X.org drivers.<ref>{{ cite web | url = http://lists.freedesktop.org/archives/wayland-devel/2010-November/000292.html | author = Darxus | title = "hosted" patch for nouveau - X under wayland | date = 2010-11-27 | quote = It's possible to run X.org as a client of wayland, rootless or not, if you have an Intel video card }}</ref>
{{cite web
|url=http://qt.gitorious.org/qt/pages/GettingStartedWithLighthouse
|title=Getting started with Lighthouse
|accessdate=2010-12-17
}}</ref> In January 2011, Wayland support was moved into the Lighthouse branch of the upstream Qt repository.<ref>{{cite web | url = http://qt.gitorious.org/+qt-developers/qt/lighthouse/commit/6c5ea196ff086b92687033208f15e36591dc70f6 | author = Kristian Høgsberg | date = 2011-01-25 | title = Add wayland lighthouse plugin}}</ref>


] applications can switch between graphical backends like X and Wayland at ] with the -platform command line option.<ref>{{ cite web | url = http://qt.gitorious.org/qt/pages/GettingStartedWithLighthouse | title = Getting started with Lighthouse | accessdate = 2010-12-17 }}</ref> In January 2011, Wayland support was moved into the Lighthouse branch of the upstream Qt repository.<ref>{{ cite web | url = http://qt.gitorious.org/+qt-developers/qt/lighthouse/commit/6c5ea196ff086b92687033208f15e36591dc70f6 | author = Kristian Høgsberg | date = 2011-01-25 | title = Add wayland lighthouse plugin}}</ref> In December 2010, ] added preliminary support for switching backends at run time, saying "interesting combinations are x11+wayland or ]+x11".<ref>{{cite web | url = http://www.phoronix.com/scan.php?page=news_item&px=ODk0Ng | author = ] | date = 2010-12-22 | title = GTK+3 Now Uses X Input 2 By Default, New Back-End Caps}}</ref><ref>{{cite web | url = http://mail.gnome.org/archives/gnome-announce-list/2010-December/msg00036.html | date = 2010-12-21 | title = GTK+ 2.91.7 released | author = Matthias Clasen}}</ref> 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 ] repository.<ref>{{cite web | url = http://hoegsberg.blogspot.com/2011/01/multiple-backends-for-gtk.html | author = Kristian Høgsberg | date = 2011-01-03 | title = Multiple backends for GTK+}}</ref>

In December 2010, ] added preliminary support for switching backends at run time, saying "interesting combinations are x11+wayland or ]+x11".<ref>{{ cite web | url = http://www.phoronix.com/scan.php?page=news_item&px=ODk0Ng | author = ] | date = 2010-12-22 | title = GTK+3 Now Uses X Input 2 By Default, New Back-End Caps}}</ref><ref>{{ cite web | url = http://mail.gnome.org/archives/gnome-announce-list/2010-December/msg00036.html | date = 2010-12-21 | title = GTK+ 2.91.7 released | author = Matthias Clasen}}</ref> 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 ] repository.<ref>{{ cite web | url = http://hoegsberg.blogspot.com/2011/01/multiple-backends-for-gtk.html | author = Kristian Høgsberg | date = 2011-01-03 | title = Multiple backends for GTK+}}</ref>


== Development == == Development ==
], owner of Ubuntu, has hired Sam Spilsbury,<ref>
{{cite web
|quote=...I was also hired by Canonical Ltd....
|url=http://smspillaz.wordpress.com/2010/10/25/a-bright-new-future-for-compiz/
|date=2010-11-25
|title=A bright new future for Compiz
|author=Sam Spilsbury
}}</ref> 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.<ref>
{{cite web
|url=http://smspillaz.wordpress.com/2010/11/07/compiz-in-a-strange-new-land/
|date=2010-11-07
|title=Compiz in a strange new land
|author=Sam Spilsbury
}}</ref> Canonical is planning to help port Compiz to OpenGL ES, currently a requirement for Wayland display servers.<ref>{{cite web | url = http://www.reddit.com/r/IAmA/comments/en0ti/i_am_an_ubuntu_unity_developer_ama/ | accessdate = 2010-01-12 | title = I am an Ubuntu Unity Developer, AMA | quote = We are going to be helping compiz port to OpenGL ES | author = deebeeoh}}</ref>


], the KDE window manager, has added support for OpenGL ES output.<ref>{{cite web | url = http://blog.martin-graesslin.com/blog/2010/11/kwin-runs-on-opengl-es/ | date = 2010-11-28 | author = Martin Gräßlin | title = KWin runs on OpenGL ES | quote = 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}}</ref>
], owner of Ubuntu, hired Sam Spilsbury,<ref>{{ cite web | quote = ...I was also hired by Canonical Ltd.... | url = http://smspillaz.wordpress.com/2010/10/25/a-bright-new-future-for-compiz/ | date = 2010-11-25 | title = A bright new future for Compiz | author = Sam Spilsbury }}</ref> 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.<ref>{{ cite web | url = http://smspillaz.wordpress.com/2010/11/07/compiz-in-a-strange-new-land/ | date = 2010-11-07 | title = Compiz in a strange new land | author = Sam Spilsbury }}</ref> Canonical is planning to help port Compiz to OpenGL ES, currently a requirement for Wayland display servers.<ref>{{ cite web | url = http://www.reddit.com/r/IAmA/comments/en0ti/i_am_an_ubuntu_unity_developer_ama/ | accessdate = 2010-01-12 | title = I am an Ubuntu Unity Developer, AMA | quote = We are going to be helping compiz port to OpenGL ES | author = deebeeoh}}</ref>


==See also==
], the KDE window manager, added support for OpenGL ES output.{{when|date=February 2011}}<ref>{{ cite web | url = http://blog.martin-graesslin.com/blog/2010/11/kwin-runs-on-opengl-es/ | date = 2010-11-28 | author = Martin Gräßlin | title = KWin runs on OpenGL ES | quote = 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}}</ref>

== See also ==
{{Portal|Free software}} {{Portal|Free software}}

* ] * ]
* ] * ]
Line 87: Line 225:
{{refs|colwidth=30em}} {{refs|colwidth=30em}}


== External links == ==External links==

* {{Official|http://wayland.freedesktop.org/}} * {{Official|http://wayland.freedesktop.org/}}
* *
* *
* {{YouTube|ssxB0a3Js7I|Wayland Display server demonstration}} * {{YouTube|ssxB0a3Js7I|Wayland Display Server demonstration}}
* Joe 'Zonker' Brockmeier, ], November 17, 2010 * Joe 'Zonker' Brockmeier, ], November 17, 2010
* *

Revision as of 15:05, 13 February 2011

Wayland
Wayland Display Server logo
Original author(s)Kristian Høgsberg
Initial release2008
Repository
Written inC
Operating systemUnix-like
TypeDisplay server
LicenseLGPL v2
Websitehttp://wayland.freedesktop.org/

Wayland is a display server protocol for the Linux desktop and a library implementing that protocol.

Wayland provides a method for compositing window managers to communicate directly with applications, eliminating their dependence on X, allowing them to communicate directly with video and input hardware, becoming the display server. Applications render graphics to their own buffers, and a Wayland display server composites those buffers into the screen image. This is a simpler and more efficient approach than using a compositing window manager with the X Window System.

Background

Wayland is still a work in progress. Kristian Høgsberg (krh), a software engineer who works on the Linux graphics stack, started Wayland as a spare-time project in 2008, while working for Red Hat; he is now at Intel. His earlier work on X included AIGLX, and involvement in the creation of DRI2. 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 will be released under the terms of the LGPL v2. As of November 2010, Wayland only works with open source drivers for Intel, AMD (previously known as ATI) and Nvidia (nouveau driver) graphics cards. As of November 2010, Nvidia has no plans to support it in their proprietary drivers.

Høgsberg indicated that he came up with the name Wayland when driving through Wayland, MA.

Planned adoption

Wayland Demo
MeeGo (2010-09-08) Intel is working on moving MeeGo to Wayland.
Ubuntu (2010-11-04) Mark Shuttleworth announced plans to eventually replace X with Wayland as the primary Ubuntu display server with their Unity desktop.
Fedora (2010-11-09) 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."

Ubuntu and Fedora are the two most popular Linux distributions.

Design

In recent years, 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".

Høgsberg could have added an extension to X as many recent projects have done, but preferred to " X out of the hotpath between clients and the hardware" for reasons explained in the project's FAQ:

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. ... 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 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. "Longer term we'll need an answer for apps that need full , but the problem is that libGL pulls in GLX and all the X dependencies." The project is also developing versions of Qt and GTK+ 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:

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, I don't know any other display system that handles that well and transparently.

— Kristian Høgsberg

One person has envisaged providing remote access to a Wayland application by either 'pixel-scraping' (as in VNC and SPICE) or getting it to send a "rendering command stream" across the network (like RDP).

Backward compatibility with X

X11 applications are supported through an X server, optionally rootless, running as Wayland client, although currently it only supports Intel X.org drivers.

Qt applications can switch between graphical backends like X and Wayland at run time with the -platform command line option. In January 2011, Wayland support was moved into the Lighthouse branch of the upstream Qt repository.

In December 2010, GTK+ added preliminary support for switching backends at run time, saying "interesting combinations are x11+wayland or quartz+x11". 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.

Development

Canonical Ltd., owner of Ubuntu, has hired Sam Spilsbury, 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. Canonical is planning to help port Compiz to OpenGL ES, currently a requirement for Wayland display servers.

KWin, the KDE window manager, has added support for OpenGL ES output.

See also

References

  1. ^ Kristian Høgsberg (2010-11-22). "Wayland license clarification".
  2. "Wayland". Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.
  3. "Wayland Architecture". Wayland project.
  4. Kristian Høgsberg. "Wayland - A New Display Server for Linux". Linux Plumbers Conference, 2009. (Video available here)
  5. Kristian Høgsberg. "EGL and GLES1/2 on Linux". Linux Plumbers Conference, 2010.
  6. "Interview: Kristian Høgsberg". FOSDEM 2007. 2007-02-06.
  7. Kristian Høgsberg (2008-09-08). "DRI2 Protocol Spec Draft".
  8. Kristian Høgsberg (2008-03-31). "DRI2 Direct Rendering".
  9. Michael Larabel (2008-11-03). "Wayland: A New X Server For Linux". Phoronix.
    (As Høgsberg pointed out, this title is incorrect: Wayland is not an X server.)
  10. Michael Larabel (2010-11-08). "NVIDIA Says It Has No Plans To Support Wayland". Phoronix.
  11. Aaron Plattner, nvidia's primary linux developer (2010-11-07). "nvidia and the wayland display server". We have no plans to support Wayland.
  12. MeeGo* Graphics: Under the Hood. 2010-09-07. Event occurs at 4:24.
  13. Mark Shuttleworth (2010-11-04). "Unity on Wayland". The next major transition for Unity will be to deliver it on Wayland....
  14. Adam Jackson (ajax) (2010-11-09). "[Re:] Ubuntu moving towards Wayland".
  15. "Top Ten Distributions". Retrieved 2011-01-02.
  16. Jonathan Corbet (2010-11-05). "Linux Plumbers Conference: Life after X (reporting a talk by [[Keith Packard]])". LWN.net. {{cite web}}: Cite has empty unknown parameter: |1= (help); URL–wikilink conflict (help)
  17. "Wayland FAQ". Wayland Project.
  18. Michael Larabel (2010-06-06). "Wayland Meets Some Summer Love w/ New Changes". Phoronix.
  19. Kristian Høgsberg (2010-12-09). "Blender3D & cursor clamping".
  20. Kristian Høgsberg (2010-11-09). "Network transparency argument".
  21. Adam Jackson (ajax) (2010-11-09). "[Re:] Ubuntu moving towards Wayland".
  22. Darxus (2010-11-27). ""hosted" patch for nouveau - X under wayland". It's possible to run X.org as a client of wayland, rootless or not, if you have an Intel video card {{cite web}}: line feed character in |quote= at position 71 (help)
  23. "Getting started with Lighthouse". Retrieved 2010-12-17.
  24. Kristian Høgsberg (2011-01-25). "Add wayland lighthouse plugin".
  25. Michael Larabel (2010-12-22). "GTK+3 Now Uses X Input 2 By Default, New Back-End Caps".
  26. Matthias Clasen (2010-12-21). "GTK+ 2.91.7 released".
  27. Kristian Høgsberg (2011-01-03). "Multiple backends for GTK+".
  28. Sam Spilsbury (2010-11-25). "A bright new future for Compiz". ...I was also hired by Canonical Ltd....
  29. Sam Spilsbury (2010-11-07). "Compiz in a strange new land".
  30. deebeeoh. "I am an Ubuntu Unity Developer, AMA". Retrieved 2010-01-12. We are going to be helping compiz port to OpenGL ES
  31. Martin Gräßlin (2010-11-28). "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

External links

Template:Window managers

Free and open-source software projects hosted by freedesktop.org
OS components
Sound
Graphics
Other
Libraries
Frameworks
Meetings
Categories:
Wayland (protocol): Difference between revisions Add topic