As long as a competitor can gain some advantage from deeper understanding of the workings of the GPU, the drivers will remain close-source.

See, here's the problem with that argument: A competitor can't gain an advantage from a "deeper understanding of the workings of the GPU" based on the driver.

They can gain knowledge about how the GPU works (which is knowledge they did not have before), yes. But this does not automatically translate into an advantage. They'd still have to tool up an entire silicon production line (ATI already has a line, but they'd have to change their GPU's layout by quite a bit), and in the time they're spending doing this, the original GPU vendor can come out with its entire next generation of chips.

In a market that's advancing as fast as GPUs, you want your competitors to copy you -- that means they're wasting time, and not making their own product better than the stuff you have in your pipeline already. At best (for them), they're making their product the same as your currently-released stuff, because that's what your drivers target. The next generation of hardware that you have in line is going to be better than that, almost by definition. So if you plan on releasing a new generation of your hardware every year or two, it's not going to hurt. (As long as your time between generations is shorter than the time it takes your competitor to tool up an entire silicon line. Even after they do that, their hardware is still no better than yours; at best (for them) they're at the same level.)

Last I heard, opening the drivers could not be done because of NDAs that nVidia has signed with at least S3, not any kind of competitive advantage argument. (OTOH, the S3TC code maybe could be put into a ROM on the GPU, and called from there. Depends on the terms of the NDA.)

I agree on this point. THe sooner we can get open source functionality in the realm of the 3D acceleration the better. I don't like putting proprietary binary code into my kernel, but I do it for now because there is no other viable alternative.

And of course nvidia isn't going to open up it's driver code, I'm sure there is intellectual property in there they may not even own themselves. The best we can do is support this nouveau proect.

There's really no need for Nvidia to open their driver; they simply need to document the interfaces to the hardware. The hardware remains a black-box.

The open source folks will be poking registers/ports/memory to see what impact it has, and working backward from that to create a driver. This is a very slow and error prone process. It could even damage many cards.

Nvidia could simply provide guidance, as other vendors have. This can be done (and has been done with other vendors), without disclosing any information under NDA regarding chips and intellectual property (don't poke that, it'll kill the chip).

In addition, they could provide financial resources or hardware to replace equipment destroyed during the reverse engineering process, and to encourage development.

The advantages to Nvidia? They are free from the IP restrictions that apparently limit their actions now. They gain a much wider customer base. Their hardware can be supported "out of the box", by the various X projects (Xfree86, Xorg, XGL), on many more platforms. Their support and development costs are reduced - shifted to the community. And of course, there's customer goodwill.

Nvidia could even change to "for charge" business structure, like Cedega or Cross-Over Office; acceptable functionality in the open source driver, enhanced functionality at a modest charge. The enhanced functionality for older hardware is periodically rolled into the open source driver. There are many options.