Wayland and new technologies
The switch to X.Org from Wayland as the default, I wondered if you could explain the reasoning for doing that?
WC: Yeah. So when we started with GNOME Shell in 17.10, Wayland was looming large, and we thought, “This is our opportunity now to switch to Wayland.” The benefits of Wayland come back to the security story. For example, applications can’t snoop on other applications. They can’t steal keyboard input events from other applications. You can’t pop up an invisible window over the top of another application and steal things that way.
So security-wise, Wayland is definitely much better than X.Org. So if we were intending to ship Wayland in 18.04 and then support it for five years, we had to be sure that it met not only our quality requirements, but the use cases for our users.
So we shipped it in 17.10 as the default, and then if there were problems with it, you could quite easily switch to X.Org [...]. The feedback we got from our users was: it’s not quite stable enough, and that’s a combination of bugs in Wayland, bugs in display drivers, strange hardware that’s out there […]. And the other one was screen sharing, and that was a really critical request. Lots more people do screen sharing than I thought. Again, [...] people are sharing their screens all the time to do presentations and that kind of thing. So Wayland, at the moment, doesn’t allow that. It’s in the works, and it will come in time, but it wasn’t there today.
There are other weird edge cases, like certain applications that need to run as root, you have to jump through a few hoops in order to get them to open up on your Wayland session on your desktop. It hasn’t worked that way for the past 10 years. So suddenly, it does, and we were getting a lot of bug reports saying a particular application is broken. But it’s not – you just need to learn a new way of working. We thought the LTS release was not the time to be making these changes on top of all the other things that we’ve changed.
There are a couple of technologies that seem to be in the pipeline (sorry) as well, in regard to that: Pipewire for screen sharing – can you tell us more about that and also when the GNOME Shell 4 is going to pop up?
WC: So Pipewire’s been described as PulseAudio for video. That’s quite a tidy explanation. But the problem with that is, in the early days of PulseAudio, it didn’t have a stellar reputation. I think that they are quite keen to avoid drawing those similarities between the two projects.
But it will give us a pipeline video bus, if you like, where you can plug different bits in at different places – as you can with audio. You could have audio coming out of your speakers. You could have it coming out of remote speakers. It could be streamed over the network. It could be written to disk. All of these things you can do with audio, you’ll be able to do with video.
Part of that API is that it’s a natural fit for screen sharing, for there to be another thing for you to dump video into that can then be picked up by other applications, and processed and streamed and all the other kind of things.
That needs those applications to support the API, and they won’t do that until it’s finished and is stable. So it’s still relatively early in the development cycle of Pipewire. It will probably make an appearance in 18.10 – certainly 19.04.
And then hopefully, the browsers, for example, will pick up on it, and integrate support for it into their packages, and then we’ll be in a good place to leverage it.
So yeah, it’s coming soon. And what was the other question?
It sounded like GNOME shell 4 was going to solve quite a lot of problems.
WC: Yeah, definitely. The GNOME shell 4 shell is a bit of a strange topic. GNOME tell me they have never said there is going to be a GNOME shell 4. There will be a GNOME 4 – you know, a new version of all the libraries and all the applications and all that kind of thing. But they haven’t actually committed to doing a whole new shell or changing the way that it works.
I think that that will change. It may already have changed. But one of the changes that they were making there was the overall architecture. So if the display server crashes, it doesn’t take out the underlying shell and all of the applications with it.
At the moment, if the compositor mutter in the GNOME stack crashes in Wayland, it crashes Wayland and it crashes your entire session. So you’re thrown back to the login screen, and all of the applications that you’re running get killed and you’re back in the position of just switching your machine on.
So if you’re in the middle of a LibreOffice document, there’s a chance that it’s been auto-saved, but there’s also equally a chance that it hasn’t, and you’ve lost all of that work. And that was happening too frequently. I mean, it happening at all is too frequent, really, but this was happening once a day to some people, and more frequently to others.
So yeah, this was acknowledged as being a considerable problem. One of the considerations for GNOME 4 was for them to change this architecture to be more like X.Org, where if the display server crashes or a component in that stack crashes, it doesn’t take your whole session with it – that the display serve can restart and the shell can restart, and all of the applications will continue running in the background. So that when it does all restart, you’re back where you left off. And if it happens quick enough, you might not even notice that there was a problem.
So yes, that’s something that’s certainly been talked for GNOME 4. I think we will see that sooner rather than later.
On the GPU side of things, you’ve been working with NVIDIA and AMD to improve the support. I’m curious to understand, though, how things are going to improve? From what I gather, NVIDIA doesn’t support some of the APIs that are required for the Wayland compositors. I’m wondering if that means that Wayland’s ever going to reach a level of stability that’s acceptable for an LTS?
WC: Yes, it will do, I’m pretty sure of that. There were some changes in the APIs which meant there was some incompatibility there. But they’re being addressed. There were known issues, known bugs, and they will be fixed, no doubt about that.
Right, so there’s no question that NVIDIA is just not interested in Wayland and don’t want to incorporate—
WC: No, no, they definitely care about that. But also, we’ve got a really good reputation with NVIDIA through their deep-learning AI side of things as well. The deep-learning stack that comes from NVIDIA, it’s all built on Ubuntu. So we have a really good relationship with those guys already. [...] And these sorts of issues, not only the massive parallel processing compute side of things, but also the graphical side of things is being discussed directly with those graphics card vendors on a regular basis.
So yeah, I have no doubt that we’re in a good position to be able to get those bugs fixed. And they do care. They absolutely do care.