I have to admit that this is actually a very good point that I didn't considered so far.
So, if I got you right, you imply, for example, that NVidia does not want to offer programming docs for their ASICs
or even actively support a competetive FOSS driver because that wouldn't allow them to include
exclusive CUDA features which are essential for their strategy.
Of course, technically they could provide a CUDA state tracker.
But that would obviously be a no-go for NVidia as this state tracker could be quickly adapted
to run on AMD ASICs. Then again, without CUDA support NVidia surely doesn't want a competetive
FOSS driver and, thus, they don't provide programming docs to the community.
Do you think this is too crazy?
Not at all
Let me highlight something:
- nVIDIA is doing well they dont have incentive to change
- CUDA is locking their current customers well
And lastly nVIDIA was always hostile to open source
AMD's driver isn't doing too badly: we've got UVD released into a stable kernel (3.10) and power management will be in the next one (3.11, though disabled by default to make sure nothing breaks).
But you see, AMD and Intel both wrote their drivers from scratch rather than releasing source of binary drivers. Probably to avoid external IP issues. And it what makes them quite well integrated to OS. They're more or less sync'd in terms of development with other parts (kermel, MESA, ...). They're taking part in creating shape of future of Linux graphic system. On other hand Nvidia just does not cares about all this. Which is strange, granted that noticeable part of nVidia business depends on Linux. I think it's just stupid for Nvidia. They depend on Linux for their success but they can't shape their future. In long term this means they have their sail set for fail. They're nobody when it comes to Linux development. Nobody cares about them and their problems. And no linux devs give it a f...k what would happen to Nvidia and their drivers. Or, to be exact, Mr. Torvalds does, but looks like Nvidia does not likes it either .
in the example of AMD they sell more because the customers are more happy..
Welp!! WHAT? As an AMD card owner, my patience with AMD has run thin. Their drivers barely work at all, and most of the time are completely unusable. I really hope NVidia does not reduce the quality of their proprietery driver because of this effort. A working closed driver >>>> broken and unusable opensource ones.
Ah nvidia... If they open sourced their drivers it would be awesome. It'll never happen though. Why would nvidia want to give AMD a leg up at all? The AMD drivers have always been a joke on Unix and will continue to be a joke. Meanwhile nvidia is getting open source drivers for free through Nouveau, and without having to pay anyone or release API specs to the public! This means legally nvidia is free to conduct business without fear of litigation. What I've been told by a friend who interned at nvidia is that the framebuffer code uses a lot of patented/copyrighted SGI code. So they could never open source the drivers. Nouveau however by being clean room, doesn't have these problems, they are catching up pretty quickly if people bother reading the nouveau website. The 3d functions are already complete, it's just a matter of the power management getting finished. 90% of the card features already work.
No release because of patents is a lie. You can always not release the patented part, drop it completely, replace it with the open one already exist, and have your own development freedom. There are two kinds on this field: One that will release things like Intel and another that will release when its no other way like AMD and Nvidia. Both categories will act for their own benefit. Those are not our bigger problem, not having standards is: Distros in the past not using Mesa with S3TC or Floating_point_textures with fear for patents (ridiculous). Distros they don't have the latest Kernel and Mesa, Mesa release mode must change. They don't co-develop D3D support, D3D11_state_tracker was abandoned and the newest D3D9_state_tracker isn't supported yet by anyone. We are the stupid ones, not them the bad ones. We use our freedom to have 5 libraries that they do the same and they have a 10% difference. As for Phoronix article writers, add the D3D9_state_tracker to your PPA first and then call Nvidia for support.
Nvidia are probably going to be having to significant problems over the coming years. Intel's apu's are starting to get good graphics performance now and amd's apu's are just about usable for casual users and will be good when their next chips are out due to 512 shaders instead of 384, faster clock speed and 30% faster cpu. This is going to kill the low end gpu market as onboard graphics in the next gen apu's from intel+amd will be good enough for casual gamers.
Nvidia isn't in any new consoles unlike amd, their games will be optimised for amd so their desktops gpu's will get an advantage over nvidia in that way.
Nvidia's tegra chips aren't used by hardly anyone due to power consumption and therefore heat. Nvidia is going to struggle if their arm server chips and ibm+nvidia apu's don't sell well.
Open sourcing their code would be beneficial i believe as the Steambox project from valve is being announced soon. That uses linux, they could sell quite a lot of gpu's to steambox users, having open source code would help a lot.
AMD's open source drivers are improving quickly, video and power management will be working nicely in about 2 kernels time. GPU performance is poor on open source and fairly poor on closed source but with steambox coming out i suspect they will put more money into linux drivers.
AMD have tablet arm chips coming out btw so nvidia is going to have a tougher time selling tegras in tablets.