Notes from Guadec Wayland BOF

David Edmundson david at davidedmundson.co.uk
Mon Aug 7 08:23:56 UTC 2017


I went to Guadec last week, wearing my Gnome hoodie to slip in
undiscovered. I made some notes from their wayland BOF.

Everyone was super helpful and awesome, some of these comments aren't
necessarily directly relevant to us, some are pre-warnings about some
changes that might be coming.

---

They also have a problem with menus and lacking correct transient parents -
they also have a hacks to guess in GTK.

---

Mutter is switching the way they do scaling to being from per window to per
output (i.e the way that weston and kwin do it)

XWayland with scaling has a bug. We [kwin] need to implement xdg-output
ASAP.
(I'll do that - David)

---

A lot of games want to change the resolution. For direct scanout that's
fine, but for xwayland that obviously doesn't work.

There is a plan to make xwayland "fake" changing the resolution when a
client makes an xrandr call and changing the xwayland buffer size.
This will require the compositor to do some work. Details to be discussed
on the wayland mailing list in due course.

---

Xdg potential changes

set_fullscreen() will need a way for an app to specify it spans multiple
monitors.

I wanted to expand xdg_output with some monitor metadata
(isExternal/primary/whatever), mostly so we can have the primary display
info in Plasma without custom protocol code; and used set_fullscreen as an
excuse. They suggest maybe we want to extent set_fullscreen with requested
metadata, which is probably actually better.

--

Screen Recording / Casting

Mutter is going to use "pipewire" [1] for video buffer sharing.
Pipewire is dubbed as the new pulseaudio of video. (and rumour has it,
potentially replacing pulseaudo and jack too).
The docs right now are ridiculously sparse.

As a sharing protocol it seems pretty good, it has direct gstreamer sources
and sinks; an out-of-process vlc server was only 50 lines, same for screen
recording.

Mutter currently sends a file descriptor over DBus, and does the
glReadPixels/blit in the compositor.

I think it's quite interesting as it has the potential for common a common
standard.

It's not necessarily mutually exclusive with Oleg's GBM sharing [2]. We
already need a custom app to read the pixels and do the saving, instead it
could "just" proxy them into pipewire and let someone else do something
with the data.

They also didn't really have a particularly good plan of dealing with
multi-screen, just sending multiple buffers like we're going to do.

---

[1]https://github.com/wtay/pipewire
[2] D1230 et al. We should try and merge these at some point.

---
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20170807/b10c9fb2/attachment.html>


More information about the Plasma-devel mailing list