Edit: Thanks for the responses. That's quite a variety answers.
Edit: Thanks for the responses. That's quite a variety answers.
A) Drivers reveal a surprising amount of "secret sauce" for a GPU. The "public-facing" interface to a GPU is something like HLSL or GLSL, but the real interface is some proprietary ISA. The manufacturers are slowly moving in this area, but the culture of the ISA being proprietary remains. That leads to things like implementation details getting inserted into ISA docs, or code comments, or driver architecture designs, because they're for internal use only anyway. This philosophy is slowly changing, but it's still the case quite a bit.
B) There's much less difference than you would expect between a $500 gaming GPU and a $2,000 workstation GPU. It's totally plausible that you are one FOSS driver away from a much more expensive GPU. That is a problem for everybody, including the gamers who want to keep buying $500 GPUs.
C) There is a VERY complicated balance of power between OEMs (who control the purse), Intel (who sometimes competes and sometimes complements the video card manufacturers) and Microsoft (for better or for worse, a de facto standards body) and increasingly, new kinds of competitors like PowerVR. So this is just a hypothetical, but one way it could go down is like this: NVidia decides to fully embrace FOSS. Microsoft gets pissy and tries to write them out of the standard. NVidia forced to lower prices to get PC makers to buy. Apple swoops in and places a huge order of the now-cheap parts. Intel gets pissy that Apple is shipping too many Nvidia GPUs per Intel GPU, raises Apple's CPU pricing to cover the loss. The price of Macs goes up driving some customers to iPads. PowerVR's royalty fees double, and since they don't have to manage any inventory, they are increasingly more attractive to investors than traditional manufacturers like NVidia. NVidia's stock price falls, and some C-level forgoes a vacation in Europe.
I wasn't aware that there was a difference at all. Haven't there been cases of changing a single resistor to switch the card's mode?
In theory you make 1 model of chip. You manufacture them. You test them. What clock speeds are they stable at. Are any of the cores faulty. Many (probably most) will have defects. Some of them will be duds and must be thrown The bits with the defects are switched off and resold as lower end hardware.
The common less powerful failure cases cost less and the rare more powerful successes cost more.
The high end stuff sells for more than the cost of manufacturing and the low end stuff goes for less. They offset each other.
So when people force a model of GPU to preform higher they are basically ignoring the Q.C. and are going to be dealing with undefined behaviour. Did the card get reduced just because it produced more heat at the higher levels (in which case a highend heatsint might counteract the issue) or because there is a core that returns faulty data.
That's only the theory though.
In reality it might be artificially screwed with to increase profits. Maybe there are many more successes than the desired price level matches. Maybe they are selling more cheaper stuff so they turn off the bits of the chips even though they passed the QC. There are only 2 companies selling gaming GPUs so there could be an artificial duopoly. Nvidia only have to be price competitive with AMD.
But I thought pro chips actually tended to be clocked a bit lower than gaming chips. There's no 'ignoring QC' there if you trick the board, quite the opposite.
Yes, the pro gpus have different clocks, ECC memory and there may be other differences in the board as well.
Resistor hack turns a Nvidia GTX690 into a Quadro K5000 or Tesla K10
No it doesn't. This was discussed earlier in the thread you link to. This hack triggers a bug in the display driver, which allows you to work around a silly limitation in the Linux driver.
You can do the same with a software hack in the kernel that spoofs the PCI vendor:device identifiers. And the driver bug is probably fixed so it won't work any more. Hopefully the silly monitor count limitation (not present on Windows drivers with same GPU) is lifted as well so this hack isn't needed any more.
This resistor hack does not change the GPU clocks or enable units that have been fused off. It does not turn a gaming gpu into a pro gpu.
There are also other differences such as error correcting memory in pro gpus, different clocks, etc. Some units that are not essential for gaming performance have been fused off in gaming gpus so that the chips can run faster and hotter.
It's funny how you never hear anyone complain about the fact that Intel's i3, i5 and i7 models are almost the same chip but there's a huge price (and perf) difference. Intel's latest product line has 22 chips of the same design, and they definitely don't have 22 semiconductor production lines.
> I wasn't aware that there was a difference at all. Haven't there been cases of changing a single resistor to switch the card's mode?
This was debunked in an earlier HN discussion, all the resistor hack does is spoof the PCI vendor:device identifier. The fused off parts won't come back up. It won't turn a gaming gpu into a pro gpu, it only triggers a bug in the driver that allows multiple displays (what a silly limitation).
a) If the drivers were open patent trolls and competitors would sue.
b) I have heard stories about some graphics vendors who have a lot of duplicated code in their drivers for supporting different generations of cards. Instead of building abstractions that achieve generality theyve succumbed to the copy paste rabbit hole.
c) If we all saw the mess that lives in the drivers none of us would be okay with it running it as a kernel module.
d) There are questionable optimizations that vendors would be caught on.
Also, if folks had the source, they'd likely start doing optimizations for particular cards and drivers--that being the case, there would be a really gnarly backwards-compatibility issues that would start to plague vendors.
f) convoluted build process which is impossible to recreate outside NVidia
g) some code is licenced from somebody else
h) obvious NSA backdoor built in
However, that same type of stuff may not reflect other organizations and members of those organizations in a good light. So there are definitely concerns there.
I'm a developer, and my company's closed source code definitely has its share of profanity and "WTF"s. But that would not fly for things we make available on GitHub, just due to concerns of our image. Most developers wouldn't give two shits about the comment...
Unless your fellow developers are posting extremely obscene racial slurs and threatening rape on the interns. In which case your company has bigger issues to worry about.
> When we created mozilla.org and released (most of) the source code to Netscape Confusicator 4.x, Netscape's lawyers made us go through a big "sanitization" process on the source code. Largely this consisted of making sure we had the legal rights to all the code we were releasing, and making sure every file had proper and accurate copyright statements; but they also made us take out all the dirty words. Specifically, "any text containing vulgar or offensive words or expressions; any text that might be slanderous or libelous to individuals and/or institutions."
http://www.jwz.org/doc/censorzilla.html
Even John Carmack was pressured by the lawyers when he open-sourced Doom 3.
http://www.techspot.com/news/46391-john-carmack-releases-doo...
I think it's this. From what I've been told, the line between software (driver) and hardware (graphics card/chip) is blurry, and moves around from generation to generation. The "graphics processing model" is only partly executed in hardware; the rest is in software.
This is a very convenient PR move because it shifts all the blame onto groups of unnamed entities, and tends to place the burden on the open-source advocate to get all of these unnamed entities to modify their licensing agreements.
The party line statement is structured to make nVidia appear helpless and as if the burden is upon the open-source advocate to get the component vendors to allow their code to go open, but this is not correct. If nVidia cared about open-source, they'd use their clout to make sure they got what they wanted.