Question to help me increase my understanding on what’s going on in the Linux desktop stack. I’ve heard Gnome doesn’t support VRR while KDE does.
Why does this matter, isn’t Wayland or X11 the one that would ultimately need to support VRR? Basically when running a game that I want to use VRR with, why does it matter what my desktop environment is doing?
Wayland and X11 are protocols, they are essentially just documentation. You need an implementation to be able to actually run programs on it, called a compositor. People tend to think of X11 as a single software because historically Xorg became dominant as the main implementation of the specification, so most of us have only ever used Xorg (but Xorg is not the only implementation of X11, there are many others). Wayland, as a newer protocol, hasn’t undergone such consolidation yet, there are many competing compositors implementing the protocol in their own way. GNOME has one such compositor, and KDE has their own, and there are many others. So it’s not about “Desktop Environments” all running over the same compositor, as it was on Linux in the Xorg days. Instead, the Wayland features you get are the ones your choice of compositor has already implemented, and can vary between different compositors.
So it’s less the Gnome doesn’t support VRR and more that “the wayland compatible desktop compositor that the Gnome project prefers doesn’t support VRR”?
Which is basically the same thing. Gnome uses Mutter, which is a part of the Gnome project as a whole.
Wayland changes things a fair bit compared to Xorg. There’s no standard Wayland server, each DE implements their own to suit their needs. Some libraries have emerged to help with that, it’s relatively easy to get going with wlroots which Sway/Hyprland/Gamescope uses. But Gnome makes their own and so does KDE so it can integrate more deeply with the DE.
There’s non-desktop compositors too, like for VR for example where you can manage your windows in 3D space all around you. That’s where Wayland shines, that gets super complicated to do in Xorg but a breeze with Wayland.
Yes, it does matter, it’s a feature of your monitor that you just cannot use on gnome. Wayland DOES support VRR, it’s had a protocol for it for a while now. GNOME doesn’t support it yet. VRR works perfectly fine on KDE Plasma Wayland and Hyprland (standalone wayland compositor).
So can you just swap compositors for Gnome or is Gnome reliant on their own compositor (Mutter)?
Gnome is tightly integrated with mutter and doesn’t support other compositors. Same is true for KDE with KWin.
Not necessarily true, you can switch say Kwin for Mutter or something else for example. People have successfully done it in the past.
It’s just not at all straight forward, nor supported, nor recommend, likely very unstable especially under Wayland, amongst losing out on features that rely on integration between the DE & compositor.
It’s possible to do, but; why even bother? it’s not really worth it.
Someone smarter than me can probably explain this way better…
As far as Wayland goes, If I remember correctly, it’s mainly just a protocol, and Gnome/KDE do all the actual work of making stuff happen, so both need to support it to have it work correctly. Like if Wayland was a language like French, Gnome and KDE need to know the French words for something before they can have conversations about it, and Gnome hasn’t been as studious with it’s dictionary in regards to VRR. X11 just has an ancient code-base, and adding support for anything involves a lot of effort to make sure something else isn’t broken by the addition.
Gnome hasn’t officially merged support for VRR yet, but there is a merge request to add support, and a patched version built on that code available if you want to try it (mutter-vrr, gnome-control-center-vrr) at least on Arch Linux’s AUR.
Gnome hasn’t officially merged support for VRR yet, but there is a merge request to add support
Open since three years: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1154
And in all that time, more talking than coding.