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.
EDIT: Nvidia dev posted that support is planned in the 555 driver, with beta release planned for May 15: https://github.com/NVIDIA/egl-wayland/pull/104#issuecomment-2010292221
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).
Good luck Nvidia+Linux fanboys.
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.
Sure, I agree, but Nvidia proprietary driver is still the best for gaming, isn’t it?
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.
Questions from someone still on xmonad/x11, with 3 computers that have nvidia cards:
Do all nvidia cards have trouble in wayland currently, or is it just some subset?
Is it really unususable, or just really annoyingly flickery?
Would my card be usable now (without this merge) if I was using the nouveau driver?
Once this is merged, will all nvidia cards work in wayland? Or do we not really know yet.
I only have experience with my current GPU (3070 ti) and only in Hyprland, but the only flickering I have is in steam windows, everything else works flawlessly on 535 driver. Still excited that it may be fixed soon!
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.
so are you on x11? what drivers? having some issues with my 1660ti, curious what youre running
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.
For what it’s worth, I have only minor issues on wayland with nvidia, and all were fixable by changing some configuration option or something.
Maybe my demands aren’t too heavy, but I do play games. I also use gentoo which makes fixing things easier.
Maybe if your games are Wayland native or you’re still running the 535 driver? I saw fbdev=1 as a workaround, but that made things very jello-y.