Nvidia doesn't, and their Vulkan stack underperforms on Linux quite significantly.
It's just that Nvidia doesn't care much about Linux, and -as always- Nvidia ignores what everyone else is doing and does their own thing. Sometimes doing their own thing works out really well in the short run, but -long term- they always fall behind.
Nvidia cares a lot about Linux. Just... on their terms.
If your GPU is older than 5 years, then you're in danger zone and you should have completely replaced your hardware 3 years ago and bought new Nvidia equipment now 10x more expensive!
The biggest issue was Nvidia's insistence on buffer management with EGLStreams instead of GBM, which broke a lot of desktops. But they forfeit that fight ~4 years ago.
To summarize the difference between the two, with EGLStreams, you just request a buffer to draw into from a pool, then once you're done, you just submit it, thereby relinquishing control of it.
With GBM, you explicitly need to manage the lifetime and access of your buffers, making sure you don't leak or accidentally write it when the GPU/driver tries to, there's no clear ownership, and you have to handle surfaces for double/triple buffering.
It's a much lower level API, and much harder for drivers and app developers to get right, which was no doubt responsible for many years of buggy Wayland compositors - in fact, basically there wasn't a single correct implementation until Valve built Gamescope/their wlroots-based KWin fork and did a bunch of driver work.
Like most FOSS done by companies, what they don't care is GPL, which sadly will eventually be meaningless after boomer and Gen X devs that created the GNU movement no longer walk this plane.
There isn't a single embedded OS FOSS alternative to GNU/Linux that uses GPL, including Linux Foundation's own Zephyr.
That "partly" was worth hundreds of billions of dollars but AMD were cheap/shortsighted enough to hire a few dedicated engineers.
For various reasons, people flocked to CUDA and other proprietary crap. Then, when that proprietary crap became a money maker, people blamed AMD for not supporting their favourite proprietary crap.
AMD did the right thing and was punished for it. They're still doing the right thing and people still complain that their free full re-implementation of Nvidia's runtime, designed for completely different hardware, isn't good enough.
AMD is not a saint of a company but it's consistently better than Nvidia, every time. Doing the right thing just isn't rewarded and it shows.
https://windowsforum.com/news/nvidia-ends-feature-support-fo...
Compare it to some other products from that time:
- AMD FX Piledriver CPUs
- Skylake i7-6700K
- iPhone 6s
- Ubuntu 16.04 LTS
- Oculus Rift CV1
- Android 6 Marshmallow
Bulldozer (and thus Piledriver) was stillborn unless you were a diehard AMD fan or an overclocker, so I don't think it's helpful to lump in here.
I'd still use an iPhone SE (released the same year as the 6s) if the battery could be easily replaced and iOS still supported it. I don't do anything on my phone that needs significant performance anyway.
I still keep my 2012 Macbook Pro around as a backup machine if something happens to my main machines, and every time I drag it out to check up on it, it still works great. It stopped getting any significant MacOS updates in 2022, but Linux still gets updates.
The community can't fix it because their drivers are proprietary blobs. Open source drivers are essentially useless. I'll have to stick to something like Ubuntu to keep the hardware working without fighting DKMS every update.
This is the reason my next GPU will be either AMD or Intel.