I think asking for a proof of how Cg will benefit nVidia at the expense of others is a fallacy. We have no idea where other vendors will advance technologically...the problem isn't Cg as it is now, which seems to be identical to DX 9 HLSL by all reports, but the lack of assurance that any future changes, or lack of changes, will solely be determined by a party that has a specific interest in including changes that benefit them and excluding changes that benefit others.
Someone brings up Microsoft...
Well, hypothetically, could the current situation be considered similar to offering a free and feature rich application generally adhering to an accepted standard for content delivery?
Follow me for some a "What if?" session.
What if they proceed by then specifying specific alterations, as time progressed, in such a way that it adds functionality as they see fit?
Hmm...what if a suite of development tools tuned to producing output for the particular specification in question evolved, but only along the path of the altered vendor-centric specification, and became popular among developers?
What would then happen to the possibility of someone revising and enhancing the specification to suite the interests of the consumer or the vast majority of vendors, even though it might hurt one particular vendor's competitiveness by allowing competitors an opportunity to excel?
Well, it seems like this initiative to evolve the specification couldn't succeed, if the vendor that might lose a competitive edge is the one who controls this popular altered specification.
That vendor would then have a rather heavy influence on the success or failure of any initiative to modify the specification to an evolving standard or new direction that someone else might come up with and the rest of the industry might wish to follow.
It seems they could then leverage this influence for financial gain and/or they could delay the new specification, that might benefit the consumer/other competitors, until such a time as this one vendor has desired tools in place to ensure they profit from the change...assuming they don't prefer to offer their own version of a change tuned to their particular goals and toolset, whenever that might be.
My question is why risk the above? What is Cg giving us that DX9 HLSL isn't? And OpenGL 2.0/HLSL? I don't see the enhanced support for their enhanced vertex shader lengths and instructions, as a good HLSL shouldn't be that close to the metal as to exclude benefiting from the likely NV30 superiority to basic Pixel/Vertex shader 2.0...the specifications that have been listed are for the "assembly" language, not the HLSL.
Runtime compiling?
Hmmm...won't DX9 offer that? I mean, if DX9 offers that at the driver/API level, what exactly is the point of Cg? It seems like there is no point as far as DX goes, unless it is to coopt the initiative away from DX 9 HLSL by earlier release...or perhaps DX9 HLSL doesn't offer runtime compiling?
OpenGL? Hmm...what about OpenGL 2.0? The capabilities seem similar...is it that the OpenGL 2.0/HLSL won't support runtime compiled?
Maybe downwards compatibility as has been mentioned? Making it runtime allows abstraction that will allow effects to be designed to a high target, and be supported in some form by cards even if they can't handle the full effects load. This does assume that it is the only run time solution however...if it is, perhaps this can be a clear benefit.
Or, perhaps, is it the appeal of one HLSL for both DirectX and OpenGL? This does also seem to be a useful goal, but this seems to also magnify the negative possibilities noted above.
What if this altered specification was adopted and shipped on the next most popular system for content delivery?
Hmm...well, what a nice tool for this other popular system. Wouldn't it be too bad if the vendor tried to leverage into directing the evolution of this other system after its altered specification of content delivery became popular for it, and hence dependent upon the vendor? Would it be possible that in the meantime by assuring a wider adoptation (perhaps even monopoly) of its altered specification they would enjoy an even stronger position of leverage and control they could then use to suite the market to their profitability even at the expense of competition?
Note, the only reason it is not bad that Microsoft specifies DirectX is because they don't make any video hardware (give them time
).
It just seems to me that the one flaw apparent in Cg is an overwhelming one for a rapidly growing and evolving industry.