Zum Inhalt springen

Wayland/Architektur: Unterschied zwischen den Versionen

Aus Foxwiki
K Dirkwagner verschob die Seite Wayland/Aufbau nach Wayland/Architektur
K Textersetzung - „ “ durch „ “
Zeile 15: Zeile 15:
=== ''Wayland Compositor'' ===
=== ''Wayland Compositor'' ===
Mehrere Bilder
Mehrere Bilder
  | align     = center
  | align   = center
  | Richtung = vertical
  | Richtung = vertical
  | Kopfzeile   = Wayland: Libwayland und der Wayland Compositor
  | Kopfzeile = Wayland: Libwayland und der Wayland Compositor
  | Breite     = 680
  | Breite   = 680
  | Bild1   =Linux Graphics Stack 2013.svg
  | Bild1 =Linux Graphics Stack 2013.svg
  | Untertitel1 =Wayland-Clients schreiben mittels [[EGL (Programmierschnittstelle)|EGL]]<!-- OpenGL --> unmittelbar in den [[Bildspeicher]]; der Compositor entscheidet über die Ausgabe.<hr /><hr /><hr />
  | Untertitel1 =Wayland-Clients schreiben mittels [[EGL (Programmierschnittstelle)|EGL]]<!-- OpenGL --> unmittelbar in den [[Bildspeicher]]; der Compositor entscheidet über die Ausgabe.<hr /><hr /><hr />
  | Bild2   =Free and open-source-software display servers and UI toolkits.svg
  | Bild2 =Free and open-source-software display servers and UI toolkits.svg
  | Untertitel2 =Der Display-Server ''(Wayland Compositor)'' sitzt zwischen dem [[Linuxkern]] und seinen Clienten und überträgt seine Daten über das sogenannte ''Display-Server-Protokoll,'' welches einfach ein weiteres [[Netzwerkprotokoll]] ist.<hr /><hr /><hr />
  | Untertitel2 =Der Display-Server ''(Wayland Compositor)'' sitzt zwischen dem [[Linuxkern]] und seinen Clienten und überträgt seine Daten über das sogenannte ''Display-Server-Protokoll,'' welches einfach ein weiteres [[Netzwerkprotokoll]] ist.<hr /><hr /><hr />
  | Bild3   =Linux graphics drivers DRI Wayland.svg
  | Bild3 =Linux graphics drivers DRI Wayland.svg
  | Untertitel3 =Wayland-Clients schreiben mittels [[EGL (Programmierschnittstelle)|EGL]]<!-- OpenGL --> unmittelbar in den [[Bildspeicher]]; der Compositor entscheidet über die Ausgabe.
  | Untertitel3 =Wayland-Clients schreiben mittels [[EGL (Programmierschnittstelle)|EGL]]<!-- OpenGL --> unmittelbar in den [[Bildspeicher]]; der Compositor entscheidet über die Ausgabe.



Version vom 14. Juni 2026, 00:50 Uhr

Aufbau

Unter X11 ist ein Extra-Programm, der Fenstermanager, für die Fensterdekoration (Titelleiste, Rahmen usw.) aller Fenster zuständig.

  • Unter Wayland werden die Funktionen des Displayservers und des Fenstermanagers im Wayland Compositor zusammengefasst; die Kommunikation zwischen den beiden entfällt somit.
  • Nach wie vor kann jeder Client seine eigenen Fensterdekorationen zeichnen, oder sie können zentral vom Compositor gezeichnet werden. Weston, die Referenzimplementierung des Wayland Compositors, verlangt Client-seitige Fensterdekorationen, KWin, der Fenstermanager der Desktopumgebung von KDE, sorgt für Server-seitige.
Das Wayland-Display-Server-Protokoll

Wayland-Display-Server-Protokoll

Das Wayland-Display-Server-Protokoll definiert, dass Clients via EGL direkt in den Framebuffer zeichnen.

  • Für Mesa 3D wurde dafür libwayland-EGL geschrieben.
  • Diese Bibliothek erweitert die vorhandene Mesa-Implementierung von EGL dahingehend, dass die Zugriffe effizienter werden.

Wayland greift auf vorhandene Komponenten des Kernel des jeweiligen Betriebssystems wie Direct Rendering Manager (DRM), Kernel Mode-Setting (KMS) und den Graphics Execution Manager (GEM) unter Linux zurück, um einen minimalen Display-Server bereitzustellen.[1] Im Juni 2010 wurde Weston von dem auf Desktops eher traditionellen OpenGL auf OpenGL ES portiert.

  • Wayland kommt aber ohne OpenGL / OpenGL ES aus.

Wayland Compositor

Mehrere Bilder

| align   = center
| Richtung = vertical
| Kopfzeile  = Wayland: Libwayland und der Wayland Compositor
| Breite   = 680
| Bild1  =Linux Graphics Stack 2013.svg

| Untertitel1 =Wayland-Clients schreiben mittels EGL unmittelbar in den Bildspeicher; der Compositor entscheidet über die Ausgabe.




| Bild2  =Free and open-source-software display servers and UI toolkits.svg

| Untertitel2 =Der Display-Server (Wayland Compositor) sitzt zwischen dem Linuxkern und seinen Clienten und überträgt seine Daten über das sogenannte Display-Server-Protokoll, welches einfach ein weiteres Netzwerkprotokoll ist.




| Bild3  =Linux graphics drivers DRI Wayland.svg
| Untertitel3 =Wayland-Clients schreiben mittels EGL unmittelbar in den Bildspeicher; der Compositor entscheidet über die Ausgabe.

wurde im Oktober 2013 ein Treiber mit EGL-Unterstützung veröffentlicht, den auch Android nutzt.[3] Seit den Nvidia-Treibern mit der Version 470 wird Wayland auch von Nvidia für alle GPUs unterstützt, die mit diesen Treibern laufen.

  • Lipstick: Die Implementierung des Wayland-Compositors in Sailfish OS, dem Betriebssystem des Jolla-Smartphones.

Bildsynthese

Das Wayland-Protokoll enthält keine API zur Bildsynthese.

Jeder Wayland-Client ist für die Bildsynthese seines Fensterinhaltes selbst verantwortlich und schreibt das Ergebnis in seinen eigenen Puffer.

  • Für die Bildsynthese kann es eine eigene Engine mitbringen oder eine externe Bibliothek nutzen, wie z. B. Cairo, OpenGL oder Vulkan, oder auch die „rendering engine“ von Qt oder GTK+ benutzen.