I have a nVidia GPU (GTX760), it eventually works but with a pain. Stay away from nVidia GPUs.
In my desktop, nVidia was the only hardware because of which I had to manually fix failed upgrades/updates. nVidia was the only trouble when I've installed KDE Plasma in FreeBSD.
nVidia can work with open source drivers (nouveau), but not very efficient. To get the max performance out of your nVidia GPU, you'll need to use their proprietary drivers from nVidia. For some reasons, even with Ubuntu packaging, these drivers were always problematic for me:
- sometimes incompatible with the rest of the Ubuntu distro, you'll see kept back packages that will need a manual fix
- some nVidia versions were hanging the OS while going in/out of STR standby (Suspend to RAM), only hardware Reset was working after the OS hang
- they obsoleted and make unavailable features that used to work on my card, from nVidia compute and CUDA
- each time I've installed CUDA for Python and AI experiments, after a couple of OS updates the same programs that used to work before the updates were not working any longer.
At some point my card was listed as obsolete and that was it. Learned my lesson and using CPU acceleration now, so I can return to older project and still be able to run them.
- Firefox never managed to use hardware acceleration, it works, but after manually changing settings in about:config, and after a couple of months something else changes and nVidia HW acceleration doesn't work again, and have to google again how to enable (it's always some other setting that has to be changed, and you'll need to try a few till you find the working one)
- in FreeBSD I've run the installer about 5-10 times untill I've found the working combination for nVidia proprietary drivers to work
- nVidia uses software locks and license locks for GPU chips that can do much more, just that those features are locked down in consumer cards cheaper than $500-$1000. For example GPU pass-through is disabled in cheaper cards.
Not to say that having a proprietary driver with binary blobs in the kernel defeats the whole idea of an open source OS.
As far as I remember, nVidia worked great with Windows (apart from annoyances like forcing users to get a nVidia account for some gaming tuning software, don't recall exactly the name of that component that use to come with the Windows drivers many years ago, yet was not mandatory). Since I've switched to Linux and BSD, nVidia was a pain, it was and still is the main headache when updating the OS.
My advice after a few years of GTX760 (nVidia GPU card) is to stay away from nVidia. It works, but with a never ending stream of problems, which will cost you countless hours of googling and testing how to fix that.