Gnome on Wayland
At a Glance

Seong-ho Cho
Gnome Korea
Wayland?
Wayland?
Wayland?

•
•
•
•
•

New-generation window server replacement for X window server
New display ground for Enlightenment, GNOME and KDE
Compositor protocol to talk to a client
Supports more powerful display method
Doesn’t have rendering API

•

“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.” - by Kristian Høgsberg
History of Wayland

• Started at 2008 as a spare-time independent project by
Kristian Høgsberg from RedHat
• Became a freedesktop.org project in October 2010
• It was tried as a GSoC project in 2011, but wasn’t
successful
• Quite recently, Nvidia releases graphic driver which
supports EGL API.
– Nvidia graphic card can fully support wayland
Current Status

• Almost fully adopted in Enlightenment E18
• Experimentally (and partially) adopted in
GNOME 3.10
• Still pre-alpha release in KDE
• Included in Qt 5
– has some bug such as “Fail to compile” … :S
Why Wayland We Should Use?

•
•
•
•
•

Communication problem within X system
Need to make more brilliant user experience interface
Trend-shifting from desktop to mobile devices
X protocol is too old (developed in three decades ago)
Hard to apply new method onto the environment
based on X display server
Would You Remember?
X Server Architecture
GNOME
GNOME

KDE
KDE

Xfce
Xfce

E17,18
E17,18

X.Org Server
X.Org Server
XOrg-Evdev
XOrg-Evdev
drivers
drivers
XOrg-Input
XOrg-Input
drivers
drivers
Kernel Drivers

Xscreen
Xscreen
Frame
Frame

Compiz
Compiz
Plasma
Plasma

Xorg-Video
Xorg-Video
drivers
drivers
Proprietary
Proprietary
drivers
drivers

Final
Final
Frame
Frame

EGL
EGL

Gnome
Gnome
Shell
Shell
Compositor
Compositor

DRI
DRI
X Server Architecture (Simp.)
Wayland Architecture
Desktop Widget
Desktop Widget

Gnome
Gnome
Shell
Shell

KDE
KDE
KWin
KWin

Applications
Applications

Enlight.
Enlight.
DR18
DR18

GTK+
GTK+

Qt
Qt

OpenGL (EGL/GLES)

Wayland-server
Wayland-server
Weston Compositor
Weston Compositor
Kernel Modules

EFL
EFL
Direct
Direct
Rendered
Rendered
Frame
Frame

Final
Final
Frame
Frame
Wayland Architecture (Simp.)
Gnome on Wayland

• Now on experimental state (unstable)
• It may be completed to implement on Mar, 2014
(in a guess by release schedule)
• Components’ list and a relation within the system
will be almost totally changed due to this
– So, there can be some problem in a system-view

• But!
Gnome & Wayland
Architecture
X on Wayland Compatibility
Wayland Components
on the Gentoo System
•

Packages
–
–
–
–

•

dev-libs/wayland
dev-libs/weston
media-libs/mesa
x11-libs/gtk+

Some keywords should be added to …

– /etc/make.conf USE=“wayland wayland-compositor xwayland”

•

I warn you

– Do not change OpenRC to systemd until you totally know
•
•

what setting value can(not) be migrated
where value should be moved to

– Do not change latest Qt version 5 with “wayland” feature
•

very unstable
Wayland on Ubuntu
• Install packages

– sudo apt-get install build-essential libtool makedepend xutilsdev bison flex x11-dev libx11-dev glproto-dev libglproto-dev
x11proto-gl-dev x11proto-dri2-dev libxext-dev libxdamage-dev
libxdamage-dev libxfixes-dev libx11-xcb-dev libxcb-glx0-dev
libxcb-dri2-0-dev libudev-dev libxcb-xfixes0-dev llvm-dev

• Follow instruction to build wayland

– http://wayland.freedesktop.org/building.html

• Making toolkits to work on wayland is “working state” due
to Gnome desktop environment
for the Other Issues...

• Wayland is in the test (research) progress for
variety type of system such as embedded
devices
• You can reach the time to use full featured
“very stable” desktop environment from Oct,
2014 (maybe?)
Conclusion
• Wayland is the brand new display server can replace X
server
• Wayland brings benefit for a performance to us by
combining both wayland-server and waylandcomposite part into the wayland server and by
supporting two or more frame buffer
• We don’t have to worry about disappearing X

– developers will sustain X environment for a more years for
a compatibility with legacy system
Making Wayland Contribution

• Git repo: http://cgit.freedesktop.org/wayland
• Mailing list:
http://lists.freedesktop.org/mailman/listinfo/wayl

• IRC: #wayland on freenode
• Bugzilla:
https://bugs.freedesktop.org/enter_bug.cgi?produ
Reference

•
•
•
•
•
•
•
•
•

http://maps.google.com/
http://wayland.freedesktop.org/
http://en.wikipedia.org/wiki/Wayland_(display_server_protocol)
http://en.wikipedia.org/wiki/X_Window_System
https://phab.enlightenment.org/w/wayland/
https://help.gnome.org/misc/release-notes/3.10/
https://www.tizen.org/sites/default/files/lfcs2012_barnes.pdf
https://wiki.ubuntu.com/Wayland
http://www.slideshare.net/max_posedon/wayland-state-in-gentoo
Gnome Techtalk Event Note.
• You can download this slide from Gnome
Korea Blog (about 1 week or more later)
• WebKit presentation will be presented in a
1~2 month later by a guest speaker
• Gnome Techtalk Event for a next month will
be opened at Mid or Late November.
Thank you

Gnome on wayland at a glance

  • 1.
    Gnome on Wayland Ata Glance Seong-ho Cho Gnome Korea
  • 2.
  • 3.
  • 4.
    Wayland? • • • • • New-generation window serverreplacement for X window server New display ground for Enlightenment, GNOME and KDE Compositor protocol to talk to a client Supports more powerful display method Doesn’t have rendering API • “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.” - by Kristian Høgsberg
  • 5.
    History of Wayland •Started at 2008 as a spare-time independent project by Kristian Høgsberg from RedHat • Became a freedesktop.org project in October 2010 • It was tried as a GSoC project in 2011, but wasn’t successful • Quite recently, Nvidia releases graphic driver which supports EGL API. – Nvidia graphic card can fully support wayland
  • 6.
    Current Status • Almostfully adopted in Enlightenment E18 • Experimentally (and partially) adopted in GNOME 3.10 • Still pre-alpha release in KDE • Included in Qt 5 – has some bug such as “Fail to compile” … :S
  • 7.
    Why Wayland WeShould Use? • • • • • Communication problem within X system Need to make more brilliant user experience interface Trend-shifting from desktop to mobile devices X protocol is too old (developed in three decades ago) Hard to apply new method onto the environment based on X display server
  • 8.
  • 9.
    X Server Architecture GNOME GNOME KDE KDE Xfce Xfce E17,18 E17,18 X.OrgServer X.Org Server XOrg-Evdev XOrg-Evdev drivers drivers XOrg-Input XOrg-Input drivers drivers Kernel Drivers Xscreen Xscreen Frame Frame Compiz Compiz Plasma Plasma Xorg-Video Xorg-Video drivers drivers Proprietary Proprietary drivers drivers Final Final Frame Frame EGL EGL Gnome Gnome Shell Shell Compositor Compositor DRI DRI
  • 10.
  • 11.
    Wayland Architecture Desktop Widget DesktopWidget Gnome Gnome Shell Shell KDE KDE KWin KWin Applications Applications Enlight. Enlight. DR18 DR18 GTK+ GTK+ Qt Qt OpenGL (EGL/GLES) Wayland-server Wayland-server Weston Compositor Weston Compositor Kernel Modules EFL EFL Direct Direct Rendered Rendered Frame Frame Final Final Frame Frame
  • 12.
  • 13.
    Gnome on Wayland •Now on experimental state (unstable) • It may be completed to implement on Mar, 2014 (in a guess by release schedule) • Components’ list and a relation within the system will be almost totally changed due to this – So, there can be some problem in a system-view • But!
  • 14.
  • 15.
    X on WaylandCompatibility
  • 16.
    Wayland Components on theGentoo System • Packages – – – – • dev-libs/wayland dev-libs/weston media-libs/mesa x11-libs/gtk+ Some keywords should be added to … – /etc/make.conf USE=“wayland wayland-compositor xwayland” • I warn you – Do not change OpenRC to systemd until you totally know • • what setting value can(not) be migrated where value should be moved to – Do not change latest Qt version 5 with “wayland” feature • very unstable
  • 17.
    Wayland on Ubuntu •Install packages – sudo apt-get install build-essential libtool makedepend xutilsdev bison flex x11-dev libx11-dev glproto-dev libglproto-dev x11proto-gl-dev x11proto-dri2-dev libxext-dev libxdamage-dev libxdamage-dev libxfixes-dev libx11-xcb-dev libxcb-glx0-dev libxcb-dri2-0-dev libudev-dev libxcb-xfixes0-dev llvm-dev • Follow instruction to build wayland – http://wayland.freedesktop.org/building.html • Making toolkits to work on wayland is “working state” due to Gnome desktop environment
  • 18.
    for the OtherIssues... • Wayland is in the test (research) progress for variety type of system such as embedded devices • You can reach the time to use full featured “very stable” desktop environment from Oct, 2014 (maybe?)
  • 19.
    Conclusion • Wayland isthe brand new display server can replace X server • Wayland brings benefit for a performance to us by combining both wayland-server and waylandcomposite part into the wayland server and by supporting two or more frame buffer • We don’t have to worry about disappearing X – developers will sustain X environment for a more years for a compatibility with legacy system
  • 20.
    Making Wayland Contribution •Git repo: http://cgit.freedesktop.org/wayland • Mailing list: http://lists.freedesktop.org/mailman/listinfo/wayl • IRC: #wayland on freenode • Bugzilla: https://bugs.freedesktop.org/enter_bug.cgi?produ
  • 21.
  • 22.
    Gnome Techtalk EventNote. • You can download this slide from Gnome Korea Blog (about 1 week or more later) • WebKit presentation will be presented in a 1~2 month later by a guest speaker • Gnome Techtalk Event for a next month will be opened at Mid or Late November.
  • 23.