Wayland (display server protocol)


Wayland is a computer protocol that specifies the communication between a display server called a Wayland compositorclarification needed and its clients, as well as a reference implementation of the protocol in the C programming language6

Wayland is developed by a group of volunteers initially led by Kristian Høgsberg as a free and open community-driven project with the aim of replacing the X Window System with a modern, simpler windowing system in Linux and other Unix-like operating systems6 The project's source code is published under the terms of the MIT License, a permissive free software licence73

As part of its efforts, the Wayland project also develops a reference implementation of a Wayland compositor called Weston6

Contents

  • 1 Overview
  • 2 Software architecture
    • 21 Protocol architecture
    • 22 Protocol overview
      • 221 Wayland core interfaces
      • 222 Wayland extension interfaces
    • 23 Extension protocols to the core protocol
      • 231 XDG-Shell protocol
      • 232 IVI-Shell protocol
    • 24 Rendering model
  • 3 Comparison with other window systems
    • 31 Differences between Wayland and X
    • 32 Compatibility with X
  • 4 Wayland compositors
    • 41 Weston
    • 42 libinput
    • 43 Wayland Security Module
  • 5 Adoption
    • 51 Desktop Linux distributions
    • 52 Toolkit support
    • 53 Desktop environments
    • 54 Other software
    • 55 Mobile and embedded hardware
  • 6 History
    • 61 Releases
  • 7 See also
  • 8 References
  • 9 External links

Overviewedit

① 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

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 and its components ie DRI, DRM "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"8

Kristian 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:7

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!, and 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 Xorg 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 and a reference implementation named Weston 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 future9 It was attempted as a Google Summer of Code project in 2011, but was not successful10 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 X1111 As of early 2013, Høgsberg is experimenting with network transparency using a proxy Wayland server which sends compressed images to the real compositor1213

Software architectureedit

Protocol architectureedit

In the Wayland protocol architecture, a client and a compositor communicate through the Wayland protocol using the reference implementation libraries

Wayland protocol follows a client–server model in which clients are the graphical applications requesting the display of pixel buffers on the screen, and the server compositor is the service provider controlling the display of these buffers

The Wayland reference implementation has been designed as a two-layer protocol:14

  • A low-level layer or wire protocol that handles the inter-process communication between the two involved processes—​​client and compositor—​​and the marshalling of the data that they interchange This layer is message-based and usually implemented using the kernel IPC services, specifically Unix domain sockets in the case of Linux and Unix-like operating systems15:9
  • A high-level layer built upon it, that handles the information that client and compositor need to exchange to implement the basic features of a window system This layer is implemented as "an asynchronous object-oriented protocol"15:9

While the low-level layer was written manually in C language, the high-level layer is automatically generated from a description of the elements of the protocol stored in XML format16 Every time the protocol description of this XML file changes, the C source code that implements such protocol can be regenerated to include the new changes, allowing a very flexible, extensible and error-proof protocol

The reference implementation of Wayland protocol is split in two libraries: a library to be used by Wayland clients called libwayland-client and a library to be used by Wayland compositors called libwayland-server15:57

Protocol overviewedit

The Wayland protocol is described as an "asynchronous object-oriented protocol"15:9 Object-oriented means that the services offered by the compositor are presented as a series of objects living on the same compositor Each object implements an interface which has a name, a number of methods called requests as well as several associated events Every request and event has zero or more arguments, each one with a name and a data type The protocol is asynchronous in the sense that requests do not have to wait for synchronized replies or ACKs, avoiding round-trip delay time and achieving improved performance

The Wayland clients can make a request a method invocation on some object if the object's interface supports that request The client must also supply the required data for the arguments of such request This is the way the clients request services from the compositor The compositor in turn sends information back to the client by causing the object to emit events probably with arguments too These events can be emitted by the compositor as a response to a certain request, or asynchronously, subject to the occurrence of internal events such as one from an input device or state changes The error conditions are also signaled as events by the compositor15:9

For a client to be able to make a request to an object, it first needs to tell the server the ID number it will use to identify that object15:9 There are two types of objects in the compositor: global objects and non-global objects Global objects are advertised by the compositor to the clients when they are created and also when they are destroyed, while non-global objects are usually created by other objects that already exist as part of their functionality17

The interfaces and their requests and events are the core elements that define the Wayland protocol Each version of the protocol includes a set of interfaces, along with their requests and events, which are expected to be in any Wayland compositor Optionally, a Wayland compositor may define and implement its own interfaces that support new requests and events, thereby extending functionality beyond the core protocol15:10 To facilitate changes to the protocol, each interface contains a "version number" attribute in addition to its name; this attribute allows for distinguishing variants of the same interface Each Wayland compositor exposes not only what interfaces are available, but also the supported versions of those interfaces15:12

Wayland core interfacesedit

The interfaces of the current version of Wayland protocol are defined in the file protocol/waylandxml of the Wayland source code16 This is an XML file that lists the existing interfaces in the current version, along with their requests, events and other attributes This set of interfaces is the minimum required to be implemented by any Wayland compositor

Some of the most basic interfaces of the Wayland protocol are:15:10-12

  • wl_display – the core global object, a special object to encapsulate the Wayland protocol itself
  • wl_registry – the global registry object, in which the compositor registers all the global objects that it wants to be available to all clients
  • wl_compositor – an object that represents the compositor, and is in charge of combining the different surfaces into one output
  • wl_surface – an object representing a rectangular area on the screen, defined by a location, size and pixel content
  • wl_buffer – an object that, when attached to a wl_surface object, provides its displayable content
  • wl_output – an object representing the displayable area of a screen
  • wl_pointer, wl_keyboard, wl_touch – objects representing different input devices like pointers or keyboards
  • wl_seat – an object representing a seat a set of input/output devices in multiseat configurations

A typical Wayland client session starts by opening a connection to the compositor using the wl_display object This is a special local object that represents the connection and does not live within the server By using its interface the client can request the wl_registry global object from the compositor, where all the global object names live, and bind those that the client is interested in Usually the client binds at least a wl_compositor object from where it will request one or more wl_surface objects to show the application output on the display17

Wayland extension interfacesedit

A Wayland compositor can define and export its own additional interfaces15:10 This feature is used to extend the protocol beyond the basic functionality provided by the core interfaces, and has become the standard way to implement Wayland protocol extensions Certain compositors can choose to add custom interfaces to provide specialized or unique features The Wayland reference compositor, Weston, used them to implement new experimental interfaces as a testbed for new concepts and ideas, some of which later became part of the core protocol such as wl_subsurface interface added in Wayland 1418

Extension protocols to the core protocoledit

XDG-Shell protocoledit

XDG-Shell protocol see freedesktoporg for XDG is an extended way to manage surfaces under Wayland compositors not only Weston The traditional way to manipulate maximize, minimize, fullscreen, etc surfaces is to use the wl_shell_ functions, which are part of the core Wayland protocol and live in libwayland-client An implementation of the xdg-shell protocol, on the contrary, is supposed to be provided by the Wayland compositor So you will find the xdg-shell-client-protocolh header in the Weston source tree Each Wayland compositor is supposed to provide its own implementation

As of June 2014update, XDG-Shell protocol was not versioned and still prone to changes

xdg_shell is a protocol aimed to substitute wl_shell in the long term, but will not be part of the Wayland core protocol It starts as a non-stable API, aimed to be used as a development place at first, and once features are defined as required by several desktop shells, it can be finally made stable It provides mainly two new interfaces: xdg_surface and xdg_popup The xdg_surface interface implements a desktop-style window that can be moved, resized, maximized, etc; it provides a request for creating child/parent relationship The xdg_popup interface implements a desktop-style popup/menu; an xdg_popup is always transient for another surface, and also has implicit grab19

IVI-Shell protocoledit

IVI-Shell is an extension to the Wayland core protocol, targeting in-vehicle infotainment IVI devices20

Rendering modeledit

Wayland compositor and its clients use EGL to draw directly into the framebuffer; XOrg Server with XWayland and Glamor

The Wayland protocol does not include a rendering API15:772122:2 Instead, Wayland follows a direct rendering model, in which the client must render the window contents to a buffer shareable with the compositor15:7 For that purpose, the client can choose to do all the rendering by itself, use a rendering library like Cairo or OpenGL, or rely on the rendering engine of high-level widget libraries with Wayland support, such as Qt or GTK+ The client can also optionally use other specialized libraries to perform specific tasks, such as Freetype for font rendering

The resulting buffer with the rendered window contents are stored in a wl_buffer object The internal type of this object is implementation dependent The only requirement is that the content data must be shareable between the client and the compositor If the client uses a software CPU renderer and the result is stored in the system memory, then client and compositor can use shared memory to implement the buffer communication without extra copies The Wayland protocol already provides natively this kind of shared memory buffers through wl_shm and wl_shm_pool interfaces 15:11, 20-21 The drawback of this method is that the compositor may need to do additional work usually to copy the shared data to the GPU to display it, which leads to slower graphics performance

The most typical case is for the client to render directly into a video memory buffer using a hardware GPU accelerated API such as OpenGL, OpenGL ES or Vulkan Client and compositor can share this GPU-space buffer using a special handler to reference it23 This method allows the compositor to avoid additional copies of data to the GPU, resulting in faster graphics performance than using shm buffers, and therefore the preferred one The compositor can further optimize the composition of the final scene to show on the display by using the same hardware acceleration API as the client

When the rendering is done and the buffer shared, the Wayland client should instruct the compositor to present the rendered contents of the buffer on the display For this purpose, the client binds the buffer object that stores the rendered contents to the surface object, and sends a "commit" request to the surface, transferring the effective control of the buffer to the compositor14 Then, the client waits for the compositor to release the buffer signaled by an event if it wants to reuse the buffer to render another frame, or it can use another buffer to render the new frame and, when the rendering is finished, to bind this new buffer to the surface and commit its contents15:7 The procedure used for rendering, including the number of buffers involved and their management, is entirely under the client control15:7

Comparison with other window systemsedit

See also: Mir software architecture and controversy around Mir

Differences between Wayland and Xedit

There are several differences between Wayland and X in regards to performance, code maintainability, and security:24

  • Architecture: the composition manager is a separate, additional feature in X, while Wayland merges display server and compositor as a single function2521 Also, it incorporates some of the tasks of the window manager, which in X is a separate client-side process26
  • Composition: compositing is optional in X, but mandatory in Wayland Compositing in X is "active"; that is, the compositor must fetch all pixel data, which introduces latency In Wayland, compositing is "passive", which means the compositor receives pixel data directly from clients27:8-11
  • Rendering: the X server itself is able to perform rendering, although it can also be instructed to display a rendered window sent by a client In contrast, Wayland does not expose any API for rendering, but delegates to clients such tasks including the rendering of fonts, widgets, etc2521 Window decorations can be rendered on the client side eg, by a graphics toolkit or on the server side by the compositor28
  • Security: Wayland isolates the input and output of every window, achieving confidentiality, integrity and availability in both cases; X lacks these important security features293031 Also, with the vast majority of the code running in the client, less code needs to run with root privileges, improving security29
  • Inter-process communication: the X server provides a basic communication method between X clients, later extended by ICCCM conventions This X client-to-client communication is used by window managers and also to implement X sessions, selections and drag-and-drop, and other features Wayland core protocol does not support communication between wayland clients at all, and the corresponding functionality if needed should be implemented by the desktop environments like KDE or GNOME, or by a third party for example, by using native IPC of the underlying operating system
  • Networking: The X Window System is an architecture that was designed at its core to run over a network Wayland does not offer network transparency by itself;7 however, a compositor can implement any remote desktop protocol to achieve remote displaying In addition, there is research into Wayland image streaming and compression that would provide remote frame buffer access similar to that of VNC13

Compatibility with Xedit

A screenshot showing xwayland

XWayland is an X Server running as a Wayland client, thus capable of displaying native X11 client applications in a Wayland compositor environment32 This is similar to the way XQuartz runs X applications in OS X’s native windowing system The goal of XWayland is to facilitate the transition from X Window System to Wayland environments, providing a way to run unported applications in the meantime XWayland was mainlined into XOrg Server version 11633

Widget toolkits such as Qt 5 and GTK+ 3 can switch their graphical back-end at run time,34 allowing users to choose at load time whether they want to run the application over X or over Wayland Qt 5 provides the -platform command-line option35 to that effect, whereas GTK+ 3 lets users select the desired GDK back-end by setting the GDK_BACKEND Unix environment variable3436

Wayland compositorsedit

Typical elements of a window Neither Wayland nor X11 specifies what software is responsible for rendering the window decoration Weston requires that they are drawn by the client, but KWin will implement server-side decoration28 Main article: List of Wayland compositors

Display servers that implement the Wayland display server protocol are also called Wayland compositors because they additionally perform the task of a compositing window manager

  • Weston – the reference implementation of a Wayland compositor; Weston implements client-side decoration
  • Lipstick – mobile graphical shell framework which implements Wayland compositor It is used in Sailfish OS and Nemo Mobile37
  • Enlightenment has full Wayland support since version 02038
  • KWin had incomplete Wayland support in April 201339
  • Mutter maintains a separate branch for the integration of Wayland for GNOME 39 in September 201340
  • Clayland is a simple example Wayland compositor using Clutter
  • Westeros is a Wayland compositor library that allows applications to create their own Wayland displays, which allows nesting and embedding of third party applications41

Westonedit

Weston is the reference implementation of a Wayland compositor also developed by the Wayland project It is written in C and published under the MIT License Weston only has official support for the Linux operating system due to its dependence on certain features of the Linux kernel, such as kernel mode-setting, Graphics Execution Manager GEM, and udev, which have not yet been implemented in other Unix-like operating systems42 When running on Linux, handling of the input hardware relies on evdev, while the handling of buffers relies on Generic Buffer Management GBM However, in 2013 a prototype port of Weston to FreeBSD was announced43

Weston relies on GEM to share application buffers between the compositor and applications It contains a plugin system of "shells" for common desktop features like docks and panels13 Clients are responsible for the drawing of their window borders and their decorations For rendering, Weston can use OpenGL ES44 or the pixman library to do software rendering45 The full OpenGL implementation is not used, because on most current systems, installing the full OpenGL libraries would also install GLX and other X Window System support libraries as dependencies46

Maynard is a graphical shell and has been written as a plugin for Weston, similar as the GNOME Shell has been written as a plugin to Mutter47

A remote access interface for Weston was proposed in October 2013 by a RealVNC employee48

libinputedit

libinput was created to consolidate the input stack across multiple Wayland compositors

Libinput handles input devices for multiple Wayland compositors and also provides a generic XOrg Server input driver It aims to provide one implementation for multiple Wayland compositors with a common way to handle input events while minimizing the amount of custom input code compositors need to include libinput provides device detectionclarification needed via udev, device handling, input device event processing and abstraction4950

Version 10 of libinput followed version 021, and included support for tablets, button sets and touchpad gestures This version will maintain stable API/ABI51

As GNOME/GTK+ and KDE Frameworks 552 have mainlined the required changes, Fedora 22 will replace XOrg's evdev and Synaptics drivers with libinput53

The Weston code for handling input devices keyboards, pointers, touch screens, etc was split into its own separate library, called libinput, for which support was first merged in Weston 155455

With version 116, the XOrg Server obtained support for the libinput library in form of a wrapper called xf86-input-libinput5657

Wayland Security Moduleedit

Wayland Security Module is a proposition that resembles the Linux Security Module interface found in the Linux kernel58

Some applications especially the ones related to accessibility require privileged capabilities that should work across different Wayland compositors Currently,when applications under Wayland are generally unable to perform any sensitive tasks such as taking screenshots or injecting input events Wayland developers are actively looking for feasible ways to handle privileged clients securely and then designing privileged interfaces for them

Wayland Security Module is a way to delegate security decisions within the compositor to a centralized security decision engine58

Adoptionedit

As explained in the "Software architecture" section above, the Wayland protocol is designed to be simple so that additional protocols and interfaces need to be defined and implemented to achieve a holistic windowing system As of July 2014, these additional interfaces are actively being worked on So, while the toolkits already fully support Wayland, the developers of the graphical shells are cooperating with the Wayland developers creating the necessary additional interfaces

Desktop Linux distributionsedit

In general, out of the box support for a full desktop running Wayland in major Linux distributions is still in early stages However, for most Linux distributions that ship Gnome 320 or newer should feature a Wayland session and in case of 322 or newer even default to that Notable early adopters are:

  • Fedora starting with version 25 uses Wayland for the default GNOME 322 desktop session, with XOrg as a fallback if the graphics driver cannot support Wayland59 Fedora 25 carries patches that make the Wayland session work with NVidia drivers60
  • RebeccaBlackOS is a live USB Debian-based61 Linux distribution that allows a convenient way to try out a real Wayland desktop without having to make any modifications to the main operating system of the computer62 It is being used since as early as 2012 to showcase Wayland6364

Toolkit supportedit

Toolkits supporting Wayland include the following:

  • Clutter has complete Wayland support656667
  • EFL has complete Wayland support, except for selection68
  • GTK+ 320 has complete Wayland support69
  • Qt 5 has complete Wayland support
  • SDL support for Wayland debuted with the 202 release70 and was enabled by default since version 20471
  • GLFW 32 has Wayland support72
  • FreeGLUT has initial Wayland support73

Desktop environmentsedit

Desktop environments in process of being ported from X to Wayland include GNOME,74 KDE Plasma 575 and Enlightenment76 The Hawaii desktop environment is a desktop environment that exclusively supports Wayland

In November 2015, Enlightenment e20 was announced with "full Wayland support"773878 GNOME 320 was the first version "to have a full Wayland session"79 GNOME 322 now defaults to Wayland80 GNOME 324 will ship the NVidia patches developed for Fedora 2581

Wayland support for KDE Plasma was delayed until the release of Plasma 582, though previously KWin 411 got an experimental Wayland support83 The version 54 of Plasma was the first with a Wayland session84

Other softwareedit

Other software supporting Wayland includes the following:

  • Intelligent Input Bus is working on Wayland support, it could be ready for Fedora 2285
  • RealVNC published a Wayland developer preview in July 2014488687
  • Maliit is an input method framework that runs under Wayland888990
  • kmscon supports Wayland with wlterm91
  • Mesa has Wayland support integrated92
  • Eclipse was made to run on Wayland during a GSoC-Project in 201493
  • The Vulkan WSI Window System Interface is a set of API calls serve a similar purpose as EGL does for OpenGL ES or GLX for OpenGL Vulkan WSI includes support for Wayland from day one: VK_USE_PLATFORM_WAYLAND_KHR Vulkan clients can run on unmodified Wayland servers, including Weston, GENIVI LayerManager, Mutter / GNOME Shell, Enlightenment, and more The WSI allows applications to discover the different GPUs on the system, and display the results of GPU rendering to a window system94

Mobile and embedded hardwareedit

Mobile and embedded hardware supporting Wayland includes the following:

  • GENIVI Alliance: The GENIVI automotive industry consortium for in-vehicle infotainment IVI supports Wayland95
  • Raspberry Pi: The Raspberry Pi Foundation in collaboration with Collabora released Maynard and work on improving performance and memory consumption, but do not expect to be able to replace X11 as the default display server until later in 20139697
  • Jolla: Smartphones from Jolla use Wayland It is also used as standard when Linux Sailfish OS is used with hardware from other vendors or when it is installed into Android devices by users9899100
  • Tizen: Tizen up to 2x supports Wayland in in-vehicle infotainment IVI setups101 and from 30 onward defaults to Wayland102

Historyedit

Wayland uses direct rendering over EGL

Kristian Høgsberg, a Linux graphics and XOrg developer who previously worked on AIGLX and DRI2, started Wayland as a spare-time project in 2008 while working for Red Hat103104105106 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" Høgsberg was driving through the town of Wayland, Massachusetts when the underlying concepts "crystallized", hence the name105107

In October 2010, Wayland became a freedesktoporg project108109 As part of the migration the prior Google Group was replaced by the wayland-devel mailing list as the project's central point of discussion and development

The Wayland client and server libraries were initially released under the MIT License,110 while the reference compositor Weston and some example clients used the GNU General Public License version 2111 Later all the GPL code was relicensed under the MIT license "to make it easier to move code between the reference implementation and the actual libraries"112 In 2015 it was discovered that the license text used by Wayland was a slightly different and older version of the MIT license, and the license text was updated to the current version used by the XOrg project known as MIT Expat License3

Wayland works with all Mesa-compatible drivers with DRI2 support92 as well as Android drivers via the Hybris project113114115

The developers of Wayland are largely current XOrg Server developers12

Releasesedit

Major Wayland and Weston releases116

See alsoedit

  • Free software portal
  • Mir software
  • X Window System

Referencesedit

  1. ^ a b Høgsberg, Kristian 9 February 2012 "ANNOUNCE Wayland and Weston 0850 released" wayland-devel mailing list 
  2. ^ a b Harrington, Bryce 21 September 2016 "ANNOUNCE wayland 1120" wayland-devel Mailing list Retrieved 21 September 2016 
  3. ^ a b c Harrington, Bryce 15 September 2015 "ANNOUNCE wayland 1893" freedesktoporg Mailing list 
  4. ^ "wayland/wayland: root/COPYING" freedesktoporg Retrieved 14 June 2015 
  5. ^ Larabel, Michael 10 June 2015 "Wayland's MIT License To Be Updated/Corrected" Phoronixcom Retrieved 17 April 2016 
  6. ^ a b c "Wayland" Wayland project Retrieved 9 May 2016 
  7. ^ a b c d "Wayland FAQ" Wayland project Retrieved 9 May 2016 
  8. ^ Corbet, Jonathan 5 November 2010 "LPC: Life after X" LWNnet Retrieved 17 April 2016 
  9. ^ Høgsberg, Kristian 9 November 2010 "Network transparency argument" 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 
  10. ^ Larabel, Michael 18 August 2011 "Remote Wayland Server Project: Does It Work Yet" Phoronixcom Retrieved 17 April 2016 
  11. ^ Jackson, Adam 9 November 2010 "Re: Ubuntu moving towards Wayland" 
  12. ^ a b Stone, Daniel 28 January 2013 The real story behind Wayland and X Speech linuxconfau 2013 Canberra Retrieved 13 April 2016 
  13. ^ a b c Willis, Nathan 13 February 2013 "LCA: The ways of Wayland" LWNnet Retrieved 19 May 2016 
  14. ^ a b "The Hello Wayland Tutorial" Retrieved 25 July 2014 
  15. ^ a b c d e f g h i j k l m n o Høgsberg, Kristian "Wayland Documentation 13" PDF Retrieved 16 March 2016 
  16. ^ a b Høgsberg, Kristian "protocol/waylandxml" FreeDesktoporg Retrieved 25 July 2014 
  17. ^ a b Paalanen, Pekka 25 July 2014 "Wayland protocol design: object lifespan" Retrieved 6 April 2016 
  18. ^ a b Høgsberg, Kristian 24 January 2014 "Wayland and Weston 14 is out" wayland-devel mailing list 
  19. ^ "xdg_shell: Adding a new shell protocol" freedesktoporg 3 December 2013 Retrieved 14 June 2014 
  20. ^ "GENIVI/wayland-ivi-extension" 
  21. ^ a b c Vervloesem, Koen 15 February 2012 "FOSDEM: The Wayland display server" LWNnet Retrieved 9 May 2016 
  22. ^ Barnes, Jesse "Introduction to Wayland" PDF Intel Open Source Technology Center Retrieved 18 April 2016 Does not include a rendering API – Clients use what they want and send buffer handles to the server 
  23. ^ Paalanen, Pekka 21 November 2012 "On supporting Wayland GL clients and proprietary embedded platforms" Retrieved 6 April 2016 Buffer sharing works by creating a handle for a buffer, and passing that handle to another process which then uses the handle to make the GPU access again the same buffer 
  24. ^ Griffith, Eric 7 June 2013 "The Wayland Situation: Facts About X vs Wayland" Phoronixcom p 2 Retrieved 17 April 2016 
  25. ^ a b "Wayland Architecture" Wayland project Retrieved 9 May 2016 
  26. ^ Edge, Jake 11 April 2012 "LFCS 2012: X and Wayland" LWNnet Retrieved 17 April 2016 
  27. ^ "Wayland/X Compositor Architecture By Example: Enlightenment DR19" PDF Retrieved 18 April 2016 
  28. ^ a b Graesslin, Martin 7 February 2013 "Client Side Window Decorations and Wayland" Retrieved 17 April 2016 
  29. ^ a b Kerrisk, Michael 25 September 2012 "XDC2012: Graphics stack security" LWNnet Retrieved 13 April 2016 
  30. ^ Peres, Martin 21 February 2014 "Wayland Compositors - Why and How to Handle Privileged Clients!" Retrieved 17 April 2016 
  31. ^ Graesslin, Martin 23 November 2015 "Looking at the security of Plasma/Wayland" Retrieved 18 April 2016 
  32. ^ "X Clients under Wayland XWayland" Wayland project Retrieved 18 July 2014 
  33. ^ "ANNOUNCE: xorg-server 1160" freedesktoporg 17 July 2014 
  34. ^ a b Høgsberg, Kristian 3 January 2011 "Multiple backends for GTK+" Retrieved 10 March 2016 
  35. ^ "QtWayland" Qt Wiki Retrieved 9 March 2016 
  36. ^ "Full Wayland support in GTK+" GNOME wiki Retrieved 10 March 2016 
  37. ^ Edge, Jake 31 July 2013 "Jolla: Sailfish OS, Qt, and open source" LWNnet Retrieved 17 April 2016 
  38. ^ a b Larabel, Michael 30 November 2015 "Enlightenment 020 Arrives With Full Wayland Support & Better FreeBSD Support" Phoronixcom Retrieved 17 April 2016 
  39. ^ Graesslin, Martin 21 April 2013 "The History on Wayland Support inside KWin" Retrieved 17 April 2016 
  40. ^ "Mutter-wayland tarballs" 
  41. ^ "Westeros Github Mirror" Retrieved 19 September 2016 
  42. ^ "README file from the Wayland source code repository" freedesktoporg 
  43. ^ Larabel, Michael 16 February 2013 "Wayland Begins Porting Process To FreeBSD" Phoronixcom Retrieved 17 April 2016 
  44. ^ Paalanen, Pekka 10 March 2012 "What does EGL do in the Wayland stack" Retrieved 19 May 2016 
  45. ^ a b Larabel, Michael 6 January 2013 "A Software-Based Pixman Renderer For Wayland's Weston" Phoronixcom Retrieved 17 April 2016 
  46. ^ Høgsberg, Kristian 9 December 2010 "Blender3D & cursor clamping" 
  47. ^ "Maynard announcement" 16 April 2014 Retrieved 16 April 2014 
  48. ^ a b "RFC weston remote access interface module" freedesktoporg 18 October 2013 
  49. ^ "libinput" Freedesktoporg Retrieved 21 May 2014 
  50. ^ Hutterer, Peter 8 October 2014 Consolidating the input stacks with libinput Speech The XOrg Developer Conference 2014 Bordeaux Retrieved 18 April 2016 
  51. ^ "libinput: the road to 10" 
  52. ^ "Libinput support added to Touchpad KCM" 
  53. ^ "Libinput now enabled as default xorg driver for F-22 workstation installs" 
  54. ^ a b Høgsberg, Kristian 20 May 2014 "Wayland and Weston 150 is released" wayland-devel mailing list 
  55. ^ Ådahl, Jonas 12 November 2013 "RFC Common input device library" Wayland mailing list 
  56. ^ Hutterer, Peter 24 September 2014 "libinput - a common input stack for Wayland compositors and XOrg drivers" Retrieved 17 April 2016 
  57. ^ de Goede, Hans 1 February 2015 "Replacing xorg input - Drivers with libinput" PDF Retrieved 18 April 2016 
  58. ^ a b Dodier-Lazaro, Steve; Peres, Martin 9 October 2014 Security in Wayland-based Desktop Environments: Privileged Clients, Authorization, Authentication and Sandboxing! Speech The XOrg Developer Conference 2014 Bordeaux Retrieved 18 April 2016 
  59. ^ "Changes/WaylandByDefault" Fedora Project 
  60. ^ Christian Schaller "Hybrid Graphics and Fedora Workstation 25" Gnomeorg 
  61. ^ "Wayland Live OS Is Now Based On Debian Testing, Working KDE Wayland Support" Phoronix 
  62. ^ "RebeccaBlackOS" Sourceforge 
  63. ^ "Trying Out Wayland With Rebecca Black" Phoronix 
  64. ^ "New Wayland Live CD Has A Lot Of Features" Phoronix 
  65. ^ Bassi, Emmanuele 31 January 2011 "ANNOUNCE: Clutter 160 stable" clutter-announce Mailing list 
  66. ^ Bradford, Rob 16 December 2011 "Clutter & Cogl Wayland update" Retrieved 9 March 2016 The Clutter client side support is basically complete 
  67. ^ Bassi, Emmanuele 24 September 2013 "ANNOUNCE: Clutter 1160 stable" clutter-announce Mailing list 
  68. ^ "Wayland – Enlightenment" Retrieved 6 March 2013 
  69. ^ "GTK+ Roadmap" Retrieved 8 March 2016 
  70. ^ Lantinga, Sam 8 March 2014 "SDL 202 RELEASED!" SDL Project Retrieved 18 March 2014 
  71. ^ Larabel, Michael 9 January 2016 "SDL 204 Was Quietly Released Last Week With Wayland & Mir By Default" Phoronixcom Retrieved 17 April 2016 
  72. ^ Berglund, Camilla 8 April 2014 "Implementation for Wayland · Issue #106 · glfw/glfw · GitHub" Retrieved 14 August 2014 
  73. ^ "FreeGLUT Wayland support merged" 
  74. ^ "GNOME Initiatives - Wayland" GNOME Wiki Retrieved 8 March 2016 
  75. ^ "KWin/Wayland" KDE Community Wiki Retrieved 8 March 2016 
  76. ^ "Enlightenment - Wayland" Enlightenmentorg Retrieved 8 March 2016 
  77. ^ "Enlightenment DR 0200 Release" Enlightenmentorg Retrieved 8 March 2016 
  78. ^ "The Enlightenment of Wayland" FOSDEMorg Retrieved 8 March 2016 
  79. ^ "ReleasePlanning/FeaturesPlans" GNOME Project Retrieved 31 May 2015 
  80. ^ "A Look At The Exciting Features/Improvements Of GNOME 322" Phoronix 
  81. ^ "GNOME Lands Mainline NVIDIA Wayland Support Using EGLStreams" Phoronix 
  82. ^ "Plasma's Road to Wayland" 25 July 2014 
  83. ^ Larabel, Michael 14 June 2013 "KDE 411 Beta Released, Works On Wayland" Phoronixcom Retrieved 17 April 2016 
  84. ^ Graesslin, Martin 29 June 2015 "Four years later" Retrieved 17 April 2016 
  85. ^ Schaller, Christian 3 July 2014 "Wayland in Fedora Update" blogsgnomeorg Retrieved 17 April 2016 
  86. ^ "VNC® Wayland Developer Preview" 8 July 2014 
  87. ^ "RealVNC Wayland developer preview email" freedesktoporg 9 July 2014 
  88. ^ "Maliit Status Update" Posterous 2 April 2013 Archived from the original on 17 May 2013 Retrieved 14 October 2013 
  89. ^ "More Maliit Keyboard Improvements: QtQuick2" Murray's Blog 2 April 2013 Retrieved 14 October 2013 
  90. ^ "Maliit under Wayland" Retrieved 14 September 2013 
  91. ^ "wlterm" Freedesktoporg Retrieved 8 July 2014 
  92. ^ a b Hillesley, Richard 13 February 2012 "Wayland – Beyond X" The H Open Heise Media UK p 3 
  93. ^ "Eclipse now runs on Wayland" 18 August 2014 
  94. ^ Stone, Daniel 16 February 2016 "Vulkan 10 specification released with day-one support for Wayland" 
  95. ^ "Wayland Backend DRM | IVI Layer Management" GENIVI Alliance Retrieved 15 July 2013 
  96. ^ "Raspberry Pi Case Study" Collabora Retrieved 9 August 2013 
  97. ^ "Wayland preview" Raspberry Pi Retrieved 9 August 2013 
  98. ^ "The First Jolla Smartphone Runs With Wayland" LinuxGnet 14 July 2013 Retrieved 8 October 2013 
  99. ^ "sailfishos main components diagram" 
  100. ^ "our first Jolla will ship with wayland, yes" 
  101. ^ "IVI/IVI Setup" Tizen Wiki Retrieved 8 April 2013 
  102. ^ VanCutsem, Geoffroy 10 July 2013 "IVI Tizen IVI 30-M1 released" IVI Mailing list 
  103. ^ Høgsberg, Kristian 3 November 2008 "Premature publicity is better than no publicity" Retrieved 6 April 2016 
  104. ^ "Interview: Kristian Høgsberg" FOSDEM Archive 29 January 2012 Retrieved 8 March 2016 
  105. ^ a b Hillesley, Richard 13 February 2012 "Wayland - Beyond X" The H Open Heise Media UK Retrieved 8 March 2016 
  106. ^ Høgsberg, Kristian "Wayland – A New Display Server for Linux" Linux Plumbers Conference, 2009 
  107. ^ Jenkins, Evan 22 March 2011 "The Linux graphics stack from X to Wayland" Ars Technica Retrieved 17 April 2016 
  108. ^ Larabel, Michael 29 October 2010 "Wayland Becomes A FreeDesktoporg Project" Phoronixcom Retrieved 17 April 2016 
  109. ^ Høgsberg, Kristian 29 October 2010 "Moving to freedesktoporg" Retrieved 31 July 2013 
  110. ^ Høgsberg, Kristian 3 December 2008 "Wayland is now under MIT license" wayland-display-server Mailing list 
  111. ^ Høgsberg, Kristian 22 November 2010 "Wayland license clarification" wayland-devel Mailing list 
  112. ^ Høgsberg, Kristian 19 September 2011 "License update" wayland-devel Mailing list 
  113. ^ Munk, Carsten 11 April 2013 "Wayland utilizing Android GPU drivers on glibc based systems, Part 1" Mer Project Retrieved 3 July 2013 
  114. ^ Munk, Carsten 8 June 2013 "Wayland utilizing Android GPU drivers on glibc based systems, Part 2" Mer Project Retrieved 3 July 2013 
  115. ^ Larabel, Michael 11 April 2013 "Jolla Brings Wayland Atop Android GPU Drivers" Phoronixcom Retrieved 17 April 2016 
  116. ^ "Wayland" Waylandfreedesktoporg Retrieved 15 July 2013 
  117. ^ Høgsberg, Kristian 24 July 2012 "Wayland and Weston 0950 released" wayland-devel mailing list 
  118. ^ Høgsberg, Kristian 22 October 2012 "Wayland and Weston 10" wayland-devel mailing list 
  119. ^ Scherschel, Fabian 23 October 2012 "Wayland's 10 milestone fixes graphics protocol" The H Open Heise Media UK Retrieved 17 April 2016 
  120. ^ Larabel, Michael 16 April 2013 "Wayland 11 Officially Released With Weston 11" Phoronixcom Retrieved 17 April 2016 
  121. ^ Høgsberg, Kristian 15 April 2013 "11 Released" wayland-devel mailing list 
  122. ^ Larabel, Michael 13 July 2013 "Wayland 120 Released, Joined By Weston Compositor" Phoronixcom Retrieved 17 April 2016 
  123. ^ Høgsberg, Kristian 12 July 2013 "Wayland and Weston 120 released" wayland-devel mailing list 
  124. ^ Høgsberg, Kristian 11 October 2013 "Wayland and Weston 13 releases are out" wayland-devel mailing list 
  125. ^ Paalanen, Pekka 19 September 2014 "Wayland and Weston 160 released" wayland-devel mailing list 
  126. ^ Harrington, Bryce 14 February 2015 "ANNOUNCE wayland 170" wayland-devel mailing list 
  127. ^ Harrington, Bryce 14 February 2015 "ANNOUNCE weston 170" wayland-devel mailing list 
  128. ^ Harrington, Bryce 2 June 2015 "ANNOUNCE wayland 180" wayland-devel mailing list 
  129. ^ Harrington, Bryce 2 June 2015 "ANNOUNCE weston 180" wayland-devel mailing list 
  130. ^ Harrington, Bryce 21 September 2015 "ANNOUNCE wayland 190" wayland-devel Mailing list 
  131. ^ Harrington, Bryce 21 September 2015 "ANNOUNCE weston 190" wayland-devel Mailing list 
  132. ^ Harrington, Bryce 17 February 2016 "ANNOUNCE wayland 1100" wayland-devel Mailing list 
  133. ^ Harrington, Bryce 17 February 2016 "ANNOUNCE weston 1100" wayland-devel Mailing list 
  134. ^ Nestor, Marius 18 February 2016 "Wayland 110 Display Server Officially Released, Wayland 111 Arrives in May 2016" Softpedia 
  135. ^ Larabel, Michael 16 February 2016 "Wayland 110 Officially Released" Phoronixcom Retrieved 17 April 2016 
  136. ^ Harrington, Bryce 1 June 2016 "ANNOUNCE wayland 1110" wayland-devel Mailing list Retrieved 1 June 2016 
  137. ^ Harrington, Bryce 1 June 2016 "ANNOUNCE weston 1110" wayland-devel Mailing list Retrieved 1 June 2016 
  138. ^ Harrington, Bryce 21 September 2016 "ANNOUNCE weston 1120" wayland-devel Mailing list Retrieved 21 September 2016 

External linksedit

  • Official website
  • Wayland at Open Hub
  • Høgsberg, Kristian "Wayland at FOSDEM 2012" 
  • Brockmeier, Joe 'Zonker' 17 November 2010 "The way to Wayland: Preparing for life After X" LWN 
  • Hillesley, Richard 13 February 2012 "Wayland – Beyond X" The H 
  • Griffith, Eric 7 June 2013 "The Wayland Situation: Facts About X vs Wayland" Phoronix 
  • Wayland on DragonflyBSD


Wayland (display server protocol) Information about


Wayland (display server protocol)
Wayland (display server protocol)

Wayland (display server protocol) Information Video


Wayland (display server protocol) viewing the topic.
Wayland (display server protocol) what, Wayland (display server protocol) who, Wayland (display server protocol) explanation

There are excerpts from wikipedia on this article and video



Random Posts

Social Accounts

Facebook Twitter VK
Copyright © 2014. Search Engine