Nvidia sucks and I'm sick of it October 26, 2017 on Drew DeVault's blog

There’s something I need to make clear about Nvidia. Sway 1.0, which is the release after next, is not going to support the Nvidia proprietary driver, EGLStreams, or any other proprietary graphics APIs. The only supported driver for Nvidia cards will be the open source nouveau driver. I will explain why.

Today, Sway is able to run on the Nvidia proprietary driver. This is not and has never been an officially supported feature - we’ve added a few things to try and make it easier but my stance has always been that Nvidia users are on their own for support. In fact, Nvidia support was added to Sway without my approval. It comes from a library we depend on called wlc - had I’d made the decision on whether or not to support EGLStreams in wlc, I would have said no.

Right now, we’re working very hard on replacing wlc, for reasons unrelated to Nvidia. Our new library, wlroots, is better in every conceivable way for Sway’s needs. The Nvidia proprietary driver support is not coming along for the ride, and here’s why.

So far, I’ve been speaking in terms of Sway supporting Nvidia, but this is an ass-backwards way of thinking. Nvidia needs to support Sway. There are Linux kernel APIs that we (and other Wayland compositors) use to get the job done. Among these are KMS, DRM, and GBM - respectively Kernel Mode Setting, Direct Rendering Manager, and Generic Buffer Management. Every GPU vendor but Nvidia supports these APIs. Intel and AMD support them with mainlined1, open source drivers. For AMD this was notably done by replacing their proprietary driver with a new, open source one, which has been developed in cooperation with the Linux community. As for Intel, they’ve always been friendly to Linux.

Nvidia, on the other hand, have been fucking assholes and have treated Linux like utter shit for our entire relationship. About a year ago they announced “Wayland support” for their proprietary driver. This included KMS and DRM support (years late, I might add), but not GBM support. They shipped something called EGLStreams instead, a concept that had been discussed and shot down by the Linux graphics development community before. They did this because it makes it easier for them to keep their driver proprietary without having work with Linux developers on it. Without GBM, Nvidia does not support Wayland, and they were real pricks for making some announcement like they actually did.

When people complain to me about the lack of Nvidia support in Sway, I get really pissed off. It is not my fucking problem to support Nvidia, it’s Nvidia’s fucking problem to support me. Even Broadcom, fucking Broadcom, supports the appropriate kernel APIs. And proprietary driver users have the gall to reward Nvidia for their behavior by giving them hundreds of dollars for their GPUs, then come to me and ask me to deal with their bullshit for free. Well, fuck you, too. Nvidia users are shitty consumers and I don’t even want them in my userbase. Choose hardware that supports your software, not the other way around.

Buy AMD. Nvidia– fuck you!

Edit: It’s worth noting that Nvidia is evidently attempting to find a better path with this new GitHub project. I hope it works out, but they aren’t really cooperating much with anyone to build it - particularly nouveau. It’s more throwing code/blobs over the wall and expecting everyone to change for them.


  1. Mainlined means that they are included in the upstream Linux kernel source code. ↩︎

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/public-inbox@lists.sr.ht [mailing list etiquette]

Articles from blogs I read Generated by openring

Saying "no" to unethical tasks

Back in spring 2019, I was a student working as an intern at the Intel Open Source Graphics Center in Finland. I was mainly focused on improving igt-gpu-tools, the test suite that runs each time a patch is submitted for the i915 kernel driver. I really liked…

via emersion November 23, 2020

SourceHut's second year in alpha

Today is the second anniversary of SourceHut being made available to the general public during its alpha phase of development, and the end of the fourth year of development. What a year it’s been! If only I could send a warning to the younger me who wrote la…

via Blogs on Sourcehut November 15, 2020

Graphics for JVM

Introducing Skija, Java bindings for Google graphics library, Skia

via tonsky.me November 14, 2020