Wayland (protokol)

Wayland
Logo
Weston, referenční implementace Wayland serveru
Weston, referenční implementace Wayland serveru
Vývojářfreedesktop.org a kol.
První vydání30. září 2008[1]
Aktuální verze1.19.0, Weston: 8.0.0 (27. ledna 2021[2][3])
Operační systémGNU/Linux, FreeBSD[4]
Vyvíjeno vC
Typ softwaruOkenní systém, zobrazovací server
LicenceMIT, GPL pro dema[5]
Webwayland.freedesktop.org
Některá data mohou pocházet z datové položky.
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
evdev modul Linux kernelu přijímá událost a posílá ji Wayland kompozitoru.
② Wayland kompozitor projde scenegraph a rozhodne, které z oken má událost dostat. Scenegraph je vše, co je na obrazovce a Wayland kompozitor ví, které transformace nad kterými elementy provedl, tudíž může vybrat správné okno a převést souřadnice obrazovky do lokálních souřadnic okna metodou obrácené transformace. Počet typů aplikovatelných transformací oken záleží pouze na tom, co umí kompozitor, tedy pokud dokáže spočítat zpětné převedení vstupních událostí.
③ V případě X to je tak, že když klient dostane událost, X aktualizují UI, avšak v případě Waylandu probíhá rendering přes EGL a klient jen odesílá kompozitoru požadavky na změnu určité oblasti.
④ Wayland kompozitor tedy sbírá od klientů požadavky typu „damage“ [ˈdæmidž] (říkají: „Okno je poškozené, překreslit“) a poté provede rekompozici/překreslí obrazovku. Kompozitor pak může přímo zavolat ioctl k naplánování překreslení obrazovky pomocí KMS.

Wayland (anglická výslovnost [ˈwejlənd]) je v informatice název svobodného protokolu určeného pro Linux a další Unix-like operační systémy, který specifikuje komunikaci zobrazovacího serveru (tzv. Wayland kompozitoru) s jeho klienty a zároveň název knihovny, která tento protokol implementuje.

Wayland poskytuje kompozitním správcům oken metody pro přímou komunikaci s aplikacemi, zobrazovacím zařízením a vstupním zařízením. Aplikace vykreslují grafiku do svého vlastního bufferu. Složením těchto bufferů vzniká výsledná podoba zobrazených oken. Toto je mnohem jednodušší a efektivnější metoda než použití kompozitního správce oken ve spojení s X Window System.

Součástí projektu Wayland je i referenční implementace Wayland kompozitoru jménem Weston ([ˈwestn]).

Pozadí

Kristian Høgsberg (krh), softwarový inženýr, který pracuje na GNU/Linux graphics stack, začal v roce 2008 ve svém volném čase pracovat na Waylandu. Jeho dřívější práce na X serveru zahrnovala Unity, AIGLX a také se zapojil do vytváření DRI2.

Wayland je svobodný software šířený pod licencí LGPL v2. K listopadu 2010 Wayland fungoval pouze se svobodnými a otevřenými ovladači pro grafické karty Intel, AMD a nVIDIA (ovladače nouveau [nuvo]). nVIDIA nemá zatím v plánu podporovat Wayland ve svých uzavřených ovladačích.

Høgsberg uvedl, že na jméno Wayland přišel při projíždění městem Wayland v americkém státě Massachusetts.

Plánované přijetí

MeeGo (8. 9. 2010)

Intel pracuje na portování MeeGo na Wayland.

Fedora (9. 11. 2010)

Adam Jackson (ajax) řekl, že Fedora je nakloněná výchozímu použití Waylandu.

KDE

Spolu s uvolněním KDE SC 4.7 bude KWin (okenní manažer použitý v KDE) podporovat výstup pomocí OpenGL ES. Prozatím byl vytvořen základní port KWin pro Wayland. KDE SC 4.8, které by mělo vyjít v lednu roku 2012 by mělo nabídnout podporu pro Wayland běžící nad X serverem. V létě roku 2012 by měla vyjít verze 4.9 běžící přímo na Waylandu.

Compiz

Společnost Canonical, vlastník Ubuntu, najala Sama Spilsburyho, hlavního vývojáře Compizu. Jeho prací bylo přepsat všechny závislosti na X serveru do modulu. To umožní snadnější použití Compizu jako display serveru pro Wayland. Canonical plánuje pomoci portovat Compiz do OpenGL ES, což je požadavkem pro Wayland display server.

Zpětná kompatibilita s X

X11 aplikace jsou podporovány X serverem, spuštěným jako klientská aplikace Waylandu, ačkoli zatím podporuje pouze X.org ovladače Intelu. Qt aplikace mohou přepínat za běhu mezi grafickými backendy jako jsou X a Wayland pomocí volby -platform. V lednu roku 2011 byla podpora Waylandu přesunuta do větve Lighthouse ([ˈlaitˌhaus]) hlavního Qt depositáře. V prosinci roku 2010 přidal GTK+ předběžnou podporu pro přepínání backendů za běhu, říkaje: „zajímavé jsou X11+Wayland nebo Quartz+X11“. V lednu roku 2011 GTK+ Wayland backend získal podporu pro multiple-backend a byl přesunut do gdk-wayland-backend větve hlavního GTK+ Git repozitáře. V dubnu 2011 byla tato větev připojena k hlavní větvi GTK+.

Reference

V tomto článku byl použit překlad textu z článku Wayland (display server protocol) na anglické Wikipedii.

  1. wayland. Wayland Compositor Infrastructure [online]. 2008-09-30 [cit. 2017-08-25]. Dostupné online. (anglicky) 
  2. Wayland 1.19.0
  3. Weston 8.0.0
  4. LARABEL, Michael. Wayland Begins Porting Process To FreeBSD [online]. Phoronix, 2013-02-16 [cit. 2017-08-25]. Dostupné online. (anglicky) 
  5. Wayland FAQ [online]. [cit. 2011-02-17]. Dostupné v archivu pořízeném dne 2011-03-07. (anglicky) 

Externí odkazy

Média použitá na této stránce

Wayland Logo.svg
Toto je logo: Wayland – computer display server protocol
Wayland display server protocol.svg
(c) Shmuel Csaba Otto Traian, CC BY-SA 3.0
en:Wayland (display server protocol)
① The en:evdev module of the en:Linux kernel gets an event and sends it to the en:Wayland compositor. This is similar to the X case, which is great, since we get to reuse all the input drivers already in the kernel.
② 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 in the client, and the client just sends a request to the compositor to indicate the region that was updated.
④ The en:Wayland compositor collects damage requests from its clients and then re-composites the screen. The compositor can then directly issue an en:ioctl to schedule a pageflip with KMS
Weston 10.0 screenshot.png
Autor:

Software: freedesktop.org et al. and Mozilla Foundation

Screenshot:

VulcanSphere, Licence: MIT
Screenshot of Wayland (display server protocol) reference implementation, Weston 10.0