I can suggest a good reason why the Nvidia GPU drivers are opaque binary blobs.
Generally speaking, you don't build a multi-billion transistor chip, and manage to ship the A01 spin without doing some magic.
The Nvidia GPU i/o interface is a remarkable mechanism where the resource manager (the code that sits at the very lowest level) can patch the hardware interface to get around hardware issues and give the appearance of a chip that is working perfectly.
I'm not claiming the blobs work well or anything. I'm just saying there's a reason Nvidia does blobs.
Typically, an A01 chip will ship with about 50 bugs that are worked around in the resource manager and driver. They really do not want to tell you about these bugs -- because they are WORKED AROUND. You don't need to see the sausage made, so to speak.
You suggest that there are work-arounds in the drivers. And then you imply that people do not want to see them.
First of all, I am unsure if people not willing to see the work-arounds is generally true to begin with.
But more importantly, if someone does not want to see something, they can simply not look. I do not understand how that is meant to justify these drivers being binary blobs.
GPUs ship with far more workarounds in the drivers because the programmer only has access to the hardware via drivers that can cover up the bugs, and because they’re not constrained by binary compatibility.
Honest question: if you are nvidia, why not publish the interface specification for your device? If there are silicon bugs, publish the errata and the workaround. I've seen SOC manufacturers do similar. What's different about GPUs?
Generally speaking, you don't build a multi-billion transistor chip, and manage to ship the A01 spin without doing some magic.
The Nvidia GPU i/o interface is a remarkable mechanism where the resource manager (the code that sits at the very lowest level) can patch the hardware interface to get around hardware issues and give the appearance of a chip that is working perfectly.
I'm not claiming the blobs work well or anything. I'm just saying there's a reason Nvidia does blobs.
Typically, an A01 chip will ship with about 50 bugs that are worked around in the resource manager and driver. They really do not want to tell you about these bugs -- because they are WORKED AROUND. You don't need to see the sausage made, so to speak.