I see they didn't bother to supply an answer to my question about GeForce 3D (now apparently renamed NVidia 3D Vision on Linux. I guess selling product to an eager market is not a priority for them.
Announcement
Collapse
No announcement yet.
NVIDIA Developer Talks Openly About Linux Support
Collapse
X
-
Originally posted by Svartalf View PostThere's pieces that they just can't expose to the world, and it's not just due to "embarassment" or hiding flaws (which is one of the reasons some other vendors don't do this...they've got design defects in their silicon... )- or even Microsoft's influence as some keep intimating.
One of the big issues with releasing driver source is patents: not to imply that any of these companies is _deliberately_ violating someone's patents, but so much of hardware design is patented these days that you'd need to hire a whole gang of lawyers working full-time just to tell you whether you are breaking any obscure patent. This was one of the reasons why the hardware company I worked for was reluctant to release open source drivers.
Comment
-
Originally posted by movieman View PostI doubt you'll find many non-trivial chips without design defects: building a chip with hundreds of millions of transistors based on a huge stack of low-level specifications converted to a design language and translated into wires on a silicon chip without something going wrong somewhere in the process is extremely hard. Almost all the non-trivial chips I've worked with have had defects of some kind, documented or undocumented; the last custom chip I worked on in my previous job had one defect that took me more than a month to track down and we never even worked out how it occurred... as far as we could determine the spec was right, the VHDL implementation was right, and it broke somewhere between the VHDL and silicon.
But remember that GPU companies don't just sell an chip, they sell a system which is both HW and SW.
You only _really_ need to document the errata around the outside of the system. ie: for a GPU, it is only the electrical HW interface and the SW interface that is sold. The SW facing HW bugs are no different than silicon interconnect between HW block A and HW block B. Choosing a different resistor or capacitor to pull a pin in a different way removes the "issue". The datasheet for the chip will just say to use the new resistor and won't talk about the what happens if you don't use it.
The same things happens at the system level. The chips are sold as part of a system with software. So the outward issues are SW visible (on top of the driver), or HW visible (how you lay out the chip), the HW to SW layer isn't really relevant. The people who directly buy the chips virtually never write a driver.
Then when Open Source comes in it is a completely orthogonal model. The end user (who buys a card or a system from someone who actually bought the HW and the matching driver) doesn't care about the furnished driver. They want to use their own driver. Then suddenly the driver visible issues at the HW to SW layer become absolutely critical. But the IHV who produced the chip hasn't ever needed to document the HW to SW layer issues because they don't sell it that way.
That is where bridgman comes in and as Andy indicated, it is expensive to pull together what is needed to document the HW to SW layer sufficiently to communicate it externally. The only other alternative is to have someone internal to write the driver (that would be Alex) and so then you are back to the original situation where you are receiving a HW/SW system complete from the vendor.
It kind of makes OSS an expensive proposition, you either fund the development, or you fund the documentation creation. But it definitely is not cheap.
One of the big issues with releasing driver source is patents: not to imply that any of these companies is _deliberately_ violating someone's patents, but so much of hardware design is patented these days that you'd need to hire a whole gang of lawyers working full-time just to tell you whether you are breaking any obscure patent. This was one of the reasons why the hardware company I worked for was reluctant to release open source drivers.
o Commercial - we bought this code and can't release it
o Legislative - we have macrovision related code, and can't release it
o Competitive - we have secret juju that we don't want to release
o Contractual - we have license agreements (for patents), and can't release it.
issues all through the driver source. Let alone the risk of unknowingly violating patents.
All of these constraints make it very difficult to tease out what can and cannot be released and the relative risk associated with it. Particularly where after release, the company will still have "ownership" of it.
Regards,
Matthew
Comment
-
@Matthew Tippett:
First of all thanks for the insight
But uhm... at least I couldn't care less about features. All I, as a customer, want is that ISA doc -> Gallium3D converted and state tracker features on top of that.
All problems solved, right?
Correct me if I am wrong though...
Comment
-
Originally posted by movieman View Postbut so much of hardware design is patented these days that you'd need to hire a whole gang of lawyers working full-time just to tell you whether you are breaking any obscure patent.
Comment
-
Originally posted by mtippett View PostIt kind of makes OSS an expensive proposition, you either fund the development, or you fund the documentation creation. But it definitely is not cheap.
Firstly, inside the company, the person/team that designs hardware is most likely different from the person that writes the usual proprietary drivers. How do these separate teams communicate? The hardware designing team must be documenting the interface which is then being used by the driver writing team. I agree that this documentation won't be sane enough and clear enough for releasing to the general public. But that is all there is to it: the cost involved in releasing programming documentation is just the cost of sanitizing these internal documents which is far less than the cost of writing documentation from scratch.
Secondly, while patented code is a problem against open-sourcing drivers, how would it make it difficult to release programming specs? These specs need not contain either patented code or patented hardware design.
Please correct me if I'm wrong about something.
Comment
-
Originally posted by BhaKi View PostSecondly, while patented code is a problem against open-sourcing drivers, how would it make it difficult to release programming specs? These specs need not contain either patented code or patented hardware design.
Comment
-
Originally posted by V!NCENT View PostBut uhm... at least I couldn't care less about features. All I, as a customer, want is that ISA doc -> Gallium3D converted and state tracker features on top of that.
All problems solved, right?
Correct me if I am wrong though...
Getting the GPU in the state that it can accept a program is the hard part, kind of similar to what the BIOS and Linux kernel and libraries do to allow you to run your x86 program under Linux.
Regards,
Matthew
Comment
-
Comment