X/Wayland Is Coming Along Nicely, But Work Is Left

Posted by Michael Larabel on April 04, 2012

Keith Packard spoke on Wednesday of the 2012 Linux Foundation Collaboration concerning Wayland and its backwards compatibility support for X applications.

Here's my notes from Keith's talk concerning X/Wayland. Nothing from the presentation was particularly new or surprising, but largely summarized information from past mailing list discussions (covered in earlier Phoronix Wayland articles) and past conferences like X@FOSDEM 2012.

- As talked about in previous Phoronix articles, running X applications on Wayland should actually yield performance improvements than X running on the bare graphics card. There should be a net reduction in the number of context switches when running through X/Wayland and as a result better power consumption too.

- While X/Wayland is coming along well, still to be written is a Wayland-specific X window manager as an external application. This will be responsible for translating between ICCCM/EWMH and Wayland and provide the client-side decorations.

- The Wayland changes inside the X Server include around 50 patches to automatically redirect top-level windows, disable input device detection, and to create virtual keyboard/mouse devices with those input devices being sent commands from Wayland's input interpretation.

- The X video driver changes (xf86-video-* driver) changes include disabling native mode-setting, getting mode information from Wayland, ugly hacks for window resize/move (replaced by the yet-to-be-written X/Wayland window manager), and to not acquire the DRM master. At the moment, the xf86-video-intel driver branch is available with this X/Wayland support, but the other popular drivers still need to be updated (Nouveau and Radeon, in particular) with these less-invasive changes.

- Wayland cut-and-paste / drag-and-drop is in good shape with MIME-labeled objects and client-to-client direct transfers.

- When an X application needs to run under Wayland, the Weston compositor will be listening on the X socket, waiting for an incoming X connection, then launch the X Server while passing clients and listen file descriptors. When the X application is done, the xorg-server will be shutdown and Weston will go back waiting for new X connections. Keith would rather have systemd do this work, but Lennart said systemd currently can't start X, so they're using this small hack instead.

- For Wayland proxy support, there's plans for a Wayland proxy that can take the images (buffers) from the local client, pack the data (potentially with compression), and deliver it. This proxy could talk directly to the Wayland server or to another Wayland proxy server. This yet-to-be-written feature could potentially provide acceleration with local GPUs, eliminate most round-trips compared to a proxied X, and use lossy compression. While this has been a debated topic about networked Wayland support, Keith believes this yet-to-come support could provide for better remote application performance with Wayland than X today and is "plausible and pretty usable."

- Remaining Wayland issues including Wayland input support still being in flux (keyboard support, touch-screens, touch-pads, etc), remote Wayland application support, and bringing the X Input 2.2 enhancements to Wayland.

- As someone asked... Wayland will not do any audio support. "Go talk to PulseAudio!" (Reminds me of the earlier X Audio proposal.)

I also recorded an iPhone video of Keith's hour-long video presentation, which will be uploaded later this week and then noted in a later Phoronix article. Now go see what Rebecca Black has to do with Wayland.

While not covered during this presentation, I also learned that a base GNOME Shell 3.x desktop is now running under Wayland by the Intel OTC developers out of London (shared yesterday) who had previously brought up Tizen's Dawati under Wayland. Additionally, there's unofficial talk of NVIDIA looking towards Wayland support for their Tegra SoCs (this morning), which means the NVIDIA Tegra 3 Linux driver having a proper DRM/KMS implementation.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  2. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  3. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
  4. AMD Radeon Gallium3D More Competitive With Catalyst On Linux
Latest Software Articles
  1. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. F2FS File-System Shows Regressions On Linux 3.10
  4. Previewing The Radeon Gallium3D Shader Optimizations
Latest Linux News
  1. Modern Intel Gallium3D Driver Still Being Toyed With
  2. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  3. GCC 4.8.1 Compiler Due To Be Out Next Week
  4. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
  5. Linux's "Ondemand" Governor Is No Longer Fit
  6. Firefox 22 Beta Enables WebRTC Support
  7. OpenSUSE 13.1 Milestone 1 Released
  8. DRM Graphics Driver Comes For Dove/Cubox
  9. JADE: An LLVM-Based Video Decoder For MPEG RVC
  10. Ubuntu 13.10 Likely Switching To Chromium Browser
  11. Unity 7, Compiz To Be Polished For Ubuntu 13.10
Latest Forum Talk
  1. Modern Intel Gallium3D Driver Still Being Toyed...
  2. Linux's "Ondemand" Governor Is No...
  3. Ubuntu 13.10 Likely Switching To Chromium Browser
  4. KDE's Krita Ported To OpenGL 3.1, OpenGL ES 2.0
  5. Ubuntu Looks Towards MySQL Alternatives
  6. Firefox 22 Beta Enables WebRTC Support
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite