This is a new Linux explicit synchronization protocol based on DRM synchronization objects 1.
Since nvidia drivers do not properly implement implicit sync, this protocol not existing is the root cause of flickering with nvidia graphics on Wayland. This MR being merged means that Wayland might finally be usable with nvidia graphics with the next driver release.
I last purchased a 2080ti, so I will probably ride that comfortably for another couple of years, but I window shop new AMD cards sometimes. I could probably convince myself to buy one even though it's unnecessary, but I use and love my mini PC case, and the newest cards are too long to fit. I really hope smaller high-end GPUs becomes a trend to push innovation in that direction. Kind of like how phones just kept getting thinner for the longest time, I want GPUs to fight for shortest.
We also need support for the new protocol in Nvidia's driver. Support will be available in driver 555, the beta of which will be released on May 15. So there's still some time to wait until it's fully fixed.
Currently yes, tho Wine has gotten pretty far with Wayland support, so it wouldn't be too surprising to see Wine Wayland be useable for gaming in the next year or two.
God I fucking hope so man. I'm so tired of Nvidia not working on Wayland properly. It'll be so nice to have VRR and gSync on Wayland without the awful flickering.
The Nvidia driver on Wayland has been decent for a couple of years and stabilized a lot over the past ~6 months. The flickering issue was specific to XWayland. Normal Wayland apps don't have flickering problems (not quite sure why tbh), but XWayland apps would often rapidly flicker between 2 frames since it only supported implicit sync, which confused the Nvidia driver, which only supports explicit sync. Now with a Wayland protocol for explicit sync, XWayland can be updated to support it and resolve the flickering there.
Nouveau should have already been fine, this should fix the proprietary driver's issues. AFAIK this is a core issue of the proprietary driver, so should affect all cards.
I tried Wayland on my 16xx series GPU, Electron apps were only annoying, but games were unplayable. The desktop itself and Wayland native apps worked fine, though.
In addition to what others said a recent Nvidia driver update also added a workaround to reduce out of order frames without explicit sync. Ime it just made it so that resizing a flickering window makes it stop.
there's already a non-draft implementation, if I had to guess a few weeks before it's merged, and then you have to wait for a release, and then your distro has to package it. So, it's gonna be a while.
BUT, I think much more importantly is when it is merged into xwayland
The root cause of Nvidia flicker is Nvidia ecosystem being a total shitshow. This has nothing to do with drivers and how bad they are, or how Nvidia refuses to open source even the base of their desktop card drivers, or that the few tools they contribute to in in the OSS space to work around that are awful, or that the entire Linux environment for Nvidia is all about the datacenter (what an insane mess that is).
Well, this is the root cause of this specific issue if you treat nvidia's part of the stack as some barely changable black box (which is what it is right now). It's not that I disagree open source drivers would be better, I just already own an nvidia GPU :/
I'd argue the root cause was Nvidia insisting that X11 was the future, they'd never support Wayland, and refusing to participate in any of the design processes. As a result when they got dragged kicking and screaming into supporting Wayland, nothing that had been developed without Nvidia suited their hardware or drivers.
They first tried to throw their weight around by forcing EGLStreams on everyone, failed, and they've been scrambling to catch up ever since.
The AMD radv driver is best for gaming at the moment IMO. If you're stuck with NVIDIA hardware then yes, the proprietary driver is the best for gaming as the open source driver is quite slow, but the good news is that this is rapidly changing after being stagnant for 5+ years. NVK is the new open source NVIDIA Vulkan driver in Mesa and it just recently left experimental to be included officially in the next Mesa release. Also, NVIDIA's GSP firmware changes mean that the open source nouveau kernel driver can finally reclock NVIDIA GPUs to high performance clocks/power states thus it could achieve performance parity with the proprietary driver with enough optimization. On my RTX 3070 laptop it is still significantly slower and some games don't work yet, but there is no flickering or tearing that I experience with the proprietary driver. Unfortunately for GTX 10 series users, these cards do not use GSP firmware and have no means of reclocking still so they will be stuck using only proprietary drivers for the forseeable future.
I saw a comment from an nvidia dev somewhere that XWayland support is enough to resolve the flickering, but compositor support is needed for best performance.
Nvidia doesn’t support implicit sync, because they view explicit sync as more correct, it lets the driver do fewer things that might be wrong and perform better. This is true.
The Linux world often assumes implicit sync works. This was never true.
I've been using Wayland on two Nvidia machines for months now, is the flickering the whole screen or just some applications because until I updated my Nvidia drivers very recently I've not had any flickering issues at all
I’ve been on NVIDIA with Wayland since June 23 (which is when I switched to Linux in general) and I am still mystified what all this fuss is about. Everything just… works? What am I missing?