Nvidia has a very different model for what they're trying to get out of their drivers. They spent something like 5x more on the number of driver developers than AMD, then would send engineers to work with AAA game studios to "optimize their games" for Nvidia. Good so far. But then these optimizations went so far as fixing (in the driver) broken game code. Like apparently it was so bad that games were being shipped without issuing BeginScene/EndScene on DirectX.
Hence AMDs push for Mantle then Vulkan. The console like API is the carrot to get people to use an API that has an verification layer so that third parties can easily say "wow what a broken game" rather "wow this new game runs on Nvidia and not AMD, what broken AMD drivers".
Nvidia open sourcing their drivers completely destroys a large chunk of their competitive advantage and is so intertwined with all the IP of the games they have hacks for that I'd be surprised if they ever would want to open source them, or even could if they wanted to.
The problem was never opening the existing driver.
It was:
- all kinds of problems wrt. the integration of the driver in the Linux Eco system, including the properitary driver having quality issues for anything but headless CUDA.
- nvidea getting in the way of the implementation of an open source alternative to their driver
But most of these games don't even exist on Linux.. So they wouldn't have to fix all that stuff.. As a Linux user I'd gladly do without that bloat anyway (also explains why a "driver" has to be 500MB lol)
AMD supported Radeon & AMDGPU rather than releasing their own drivers, there is no reason Nvidia can't provide documentation and a simple open source firmware for their GPUs.
We could care less about the hacks and cludges baked into the proprietary Nvidia drivers and firmware focused on DirectX powered gaming. The current path Nvidia has chosen with signed firmware locks out open source developers from much of the low level operations of their GPUs.
> But then these optimizations went so far as fixing (in the driver) broken game code.
AMD does the exact same thing and always has. When you see shaders come down the wire you can replace them with better-optimized or more performant versions. It's almost always fixing driver "bugs" in the game rather than actual game bugs. And the distinction is important.
I do agree with you, but that element is something everyone has to do to remain competitive in games. Developers will only optimize for one platform (because they're crunching), and 9 times out of 10 that's a RTX2080Ti.
Nvidia did more than that, hooking their drivers in the same way that they would for benchmarks "oh actually ignore this API call" "oh actually issues these two calls when you see this one call with this signature" "yes this game requested synchronization here, but just ignore it" kinds of things.
While yes AMD did similar things when they could, it was way less prevalent (if only because they didn't have the staff necessary to pull it off to the same degree).
Hence AMDs push for Mantle then Vulkan. The console like API is the carrot to get people to use an API that has an verification layer so that third parties can easily say "wow what a broken game" rather "wow this new game runs on Nvidia and not AMD, what broken AMD drivers".
Nvidia open sourcing their drivers completely destroys a large chunk of their competitive advantage and is so intertwined with all the IP of the games they have hacks for that I'd be surprised if they ever would want to open source them, or even could if they wanted to.
More docs would be nice though.