You Got A Question? Ask    GNOME Community!

gtk-theme2
 12324   |  Oct 25
gtk_logo2
 9593   |  Mar 17
arch
 8147   |  Mar 28
 6644   |  Jun 17

Gnome & Wayland

This post was made with an older stylesheet


Wayland

Wayland is a protocol (by Kristian Høgsberg / under MIT license) for a compositor to talk to its clients as well as a C library implementation of that protocol. The compositor can be a standalone display server running on Linux kernel modesetting and evdev input devices, an X application, or a wayland client itself. The clients can be traditional applications, X servers (rootless or fullscreen) or other display servers.

So Wayland isn’t a Compositor Manager but this will be a job for Mutter. Wayland will provide a method for Mutter to communicate directly with applications and video hardware and expects him to communicate with input hardware using other libraries. Applications render graphics to their own buffers, and the window manager becomes the display server, compositing those buffers to form the on-screen display of application windows.

This is a simpler and more efficient approach than using a compositing window manager with the X, plus it gives the freedom to Gnome authors to make whatever they want with rendering, directly from openGL, as Wayland doesn’t render on behalf of the clients. It expects the clients to use whatever means they prefer to render into a shareable buffer.

Wayland promises smoother transitions and scrolling, smaller response times, better performance, easier debugging and coding for devs and in the end of the day a better Linux Desktop Experience.


Read more @ http://wayland.freedesktop.org/architecture.html

Backward Compatibility: Many toolkits will never be ported to Wayland or some applications might have X dependencies. So even if Wayland could replace X as the native Linux graphics server, X will always be there on the side, to serve those by running as Wayland Client (X on Wayland Figure).

Rather to BS you here with details – ;) – (I know what I know from docs) if you interested to learn how stuffs work you can check on Wayland Page (or Wikipedia), that provides many useful info, written in understandable way (weird for a Linux project!).


Video Cards

Wayland is not supported by any proprietary video drivers  (nVidia, AMD) at the moment and you have to use the alternatives Open Source (Nouveau) or you can just buy Intel Chipsets, which their latest Ivy Bridge series simply rocks. I couldn’t find any info about that, but my guess is that eventually nVidia will support Wayland.

According to Kristian Høgsberg closed drivers need 2 things:

  • A way to set the graphics mode (like KMS, but it could also be a standalone library)
  • A way to share video memory buffers (for example an EGLImage) between processes

If someone knows more, please leave us a comment :)


Darxus

Darxus (I don’t know his real name) run in his blog a page about the State of Wayland which he regularly updates. Darxus also has a GTK PPA with Wayland Backend Enabled (and daily builds of Wayland) if you want to try, but I think it won’t work by default, as Ubuntu’s GTK is more updated than his package. But anyway you can try it, or build GTK (and Wayland) on your own.


Gnome in Wayland

If you Google you won’t find many  information about when Gnome will fully support Wayland. So I asked Emmanuele Bassi (author of Clutter and Gnome Hacker):

The Wayland protocol has been finalized for a couple of days; both Clutter and GTK+ have been updated to reflect the current API, which means that compiling Clutter and GTK+ against Wayland should at least give you a working Wayland client backend – which means that GNOME  applications should work under a Wayland compositor — assuming they don’t use X11-specific features.

There is an issue of applications using both Clutter *and* GTK+: currently, embedding GTK+ widgets inside Clutter works only on X11 because of a fast path GLX extension; the equivalent extension for EGL (which is what Wayland uses) is available for Clutter, but it’s not  used in Clutter-GTK. patches are, as usual, very much welcome.

There’s also work to be done for a full feature parity between Wayland and X11 in GTK+; testing is appreciated.

Toolkits, though, are just one piece of the puzzle — the other is the compositor. mutter is very much a X11 window manager and compositor, and turning it into a Wayland compositor is not trivial. there is a branch that makes mutter an hybrid X11-Wayland compositor (X11 windows are mapped onto Wayland surfaces) but it’s experimental and needs work.

About Versions and Dates

I’m wary of giving out versions or dates;  everything that follows is just my personal view as a GNOME developer.

In general, I’d say that steering GNOME towards a Wayland future means making sure that:

  • All GNOME applications are not using X11-specific API, or if they are they should ensure that the GDK backend is checked and that they have fallback mechanisms in place for degrading support;
  • The toolkits used in GNOME have feature parity between the X11 andWayland code paths;
  • The compositor is capable of using X11, or Wayland, or both.

The devil, as they say, is in the details.

The first item in the list could be the objective of a GNOME Goal, given the project-wide scope.

About a default enabled Wayland Backend 

That is a question to be posed to distributors: the packages for GTK+, Cogl, and Clutter need to be built with the Wayland backend, and a dependency on Mesa and the Wayland client library; this may or may not be acceptable.

it’s also going to be problematic if you are using a binary driver, like the nVidia and the AMD/ATi ones, as they don’t support Wayland.

Then I asked Matthias Clasen (about any available dates/versions) which is a member of Gnome Release Team and a main GTK Hacker:

You are looking for information that doesn’t exist. As Emmanuele pointed out, much of the basic infrastructure is in place, but getting the entire desktop running requires a lot more work.

Full GNOME/wayland support will happen when somebody steps up to lead that effort. Until then, GNOME runs just fine on top of X, and we’ll continue to make it better.

So it isn’t quite clear when a full Wayland support will land on Gnome. However as you can see (from the Weston figures) many Gnome Apps (not all) can run on Wayland and from Ubuntu camp there are also some good news about a Wayland support, even if experimental. There are also some distros that already ship Wayland as default (for testing). Rebecca Black OS is one such release (KDE based).


Epiphany in Wayland | by Igalia

Epiphany running on Wayland. In this case, we can see the accelerated support for CSS 3D transformations and WebGL that Jose Dapena Paz is implementing on WebKitGtk+.

Jose says:

As part of my work for Igalia last weeks, I’ve been working on adding support for running WebKit-Gtk+ on Wayland. Though making it work for standard webs was a small work, adding support for Accelerated Compositing and WebGL implied adding support for EGL, and some changes in Accelerated Compositing infrastructure to render to an EGL texture shared among web layers contexts and Gtk widget.

Source: Igalia G+


Ubuntu 12.10

I tested Weston in a Virtual Box in a Ubuntu Quantal. I just installed the latest Ubuntu to see it. Well, I never imagined how a so good distro could become so bad. Ubuntu is a commercial product (as it serves commercial purposes for Canonical) and it also poses the 80% (maybe more) of the Linux Desktop trend share. So it is Okay to be some rough with them :)

Except all issues I -unfortunately- discovered, Unity is also super slow in Virtual Box -actually you can’t even run it. Gnome Shell is kinda 20 times faster. Just for the gossip here is what Darxus said: Ubuntu has seriously lost it!


 
  We can't watch comments unless G+ provides an API or if you send a notification, e.g +World Of Gnome
     Sometimes is better to place your questions on GNOME Community
  • Philip Witte

    Good write up. I’ve been following Wayland development for the past few months, and the new protocol is very exciting. It serves to fix most of the outstanding problems of X, while simplifying the whole experience for developers (very simple API!). Hopefully it will lead to a higher number of Linux based desktop apps.

    One note though. I’m not a big Ubuntu fan, I think they’re priorities and design choices aren’t always right. That being said, I see many people saying Ubuntu 12.10 is bad because it gets very poor performance in Virtual Box. The reason for this is because Unity 2D (software rendered mode) has been completely removed & replaced by the Mesa OpenGL-LLVM pipe. That means a major chunk of code has been removed from the software, which frees up a large number of developer hours which can now be spent on, IMO, more important things. Going forward, it could also mean other GUI toolkit developers could potentially depreciate their software-accelorated backends (large amounts of code) and target only OpenGL. The down side is, like the article states, the performance of the LLVM pipe is currently not near as fast as Unity 2D was, and may never be.

    The reason I support this is two-fold. First, productivity is a very important issue, and code simplification is a very good thing for all developers (it’s kind of ironic this was up on a Wayland article). Second, Ubuntu is designed more for general consumers (people unlikely to run VirtualBox) and so focusing their developing man-power on other outstanding issues makes sense. If you need virtualization, just install an OS or DE which does support 2D friendly environment (like Mint or OpenBox).

    • Kamil

      The interesting thing is that Gnome Shell uses LLVMpipe in virtual machines as well, but according to the author it is way much faster. That means this is not really a fault of software rendering, there are more issues somewhere.

      • Stiph

        Well, since the opengl implementation might be LLVMpipe, it is important to minimize the number of effects/animation applied. Following a lot of bugs and development on gnome-shell, it seems to me the Gnome Shell developers always keep in mind the backend might be LLVMpipe.

        • Craig

          Cool story bro. Tell it again.

      • Philip Witte

        I didn’t realize Gnome Shell was already using an LLVM OpenGL software backend. I haven’t tried GS in Virtualbox since 3.4 was released (or Unity for that matter), so I can’t really comment on the performance. But if GS is getting much better performance than Unity in software mode, I’d assume it’s because of limited effects (like Stiph said).

        • http://twitter.com/Sesivany Jiří Eischmann

          Man, LLVMpipe was developed for GNOME Shell. Of course, it’s running on it ;)

        • Craig

          Yup, keep “imagining” things, if it helps you believe Unity doesn’t suck. Unfortunately, your imagination is of zero value when faced with reality.

    • alex285

      Hello Philip,
      I didn’t mean that Ubuntu is a bad distro coz Unity performs poor on VB, that is the less. I just refer it because seems weird; I can run Win8, KDE, Chrome OS, but not Ubuntu.
      I think that many people that run Ubuntu for years will agree that 12.10 is one of the worse (if not the worst) releases by Canonical so far -but still a good distro overall for starters.

      • Philip Witte

        Yes, sorry, I wasn’t trying to put words in your mouth. I’ve just seen that argument around the internet in other places, recently. I do agree that, in general (this issue aside), Ubuntu 12.10 is one of the worst releases (poor performance, in-your-face-ads, etc…)

        • alex285

          About “in-your-face-ads”, I hope you like my “art” (on next post) with my awesome but limited Gimp skills :)

          • Philip Witte

            Yes, nice work, lol

    • Stiph

      The Ubuntu move is what would have made sense from the beginning:
      have a single rendering stack but provide a software backend.
      Duplicating everything is a lot of time waste, even if the success could
      come faster. I share the view of alex285 since Ubuntu day 1 in that
      they do not invest on the correct architecture/strategy/long run but
      focus on short term/patched solutions and less upstream/shared work. It
      is not bad either, it is just a different strategy: a lot of companies
      do that and succeeds. But when I see the amount of patches of some
      packages, I wonder how they can still maintain some of their patches all
      these years. On the long run I suppose it costs more (money, stability) but helps to deliver software faster.

  • Rob

    Please don’t write “gonna replace it”, it cheapens your presentation. It’s “going to replace it”. Gonna is a word used by people who don’t know better in every day speech, it is not for good, detailed articles like this.

    • alex285

      Ok, thank you!

    • Philip Witte

      I disagree, personally. I don’t think “common” phrases detract from the content of the article at all, as long as they’re understood by the general audience and don’t complicate the reading. I wouldn’t have noticed the incorrect grammar if you hadn’t mentioned it. Use of edgy catch-phrases and “hipster words” is a commonly used in marketing to make a product/brand appear personal and fresh. There is, of course, a balance to these things, but I doubt many will dock points for the issue your raised.

    • Stinger

      What a nitpicker, you must be a teacher of some sort ;-)

    • Craig

      Shut up you pedantic cretin.

  • Pingback: Links 29/10/2012: Steam For Linux Beta Needs Testers, GNOME 3.7.1 | Techrights

  • James LaBarre

    As yet, I **STILL** haven’t seen an answer on how Wayland will handle network transparency (enabled *by default*). Without that, wayland will become a significant step backwards in usability. Perhaps it’s there, but the vast silence on the topic leads me to believe it isn’t.

    • Jānis Bebrītis

      network transparency, lol

    • Craig

      You haven’t been looking very hard then, have you? There’s a very good answer to this already. Networking is none of Waylands concern, use VNC.

  • indure

    Good job, Thanks

  • Pingback: Gnome 3.8 Features: Port Gnome-Shell to use XI2 | woGue

  • Pingback: Linux Graphics / GPU / X / Wayland Architecture | Life in Linux Kernel