Put simply, the GPU vendors do not actually own all the rights to their own driver software. AMD had a project to improve the state of their drivers on Linux, but the approach they took was to try and rewrite and open source the code implementing the public API to the closed binary blobs inside the drivers, to make it easier to maintain the stability of the drivers across kernel versions. Open sourcing the blobs wasn't possible for AMD because the code in them just doesn't belong to AMD.
>Don't just accept it when lawyers say no.
Which lawyers though? It's not necessarily ARM lawyers that are the problem. You'd need to get agreement from the dozens of patent holders of various bits of the technology, most of whom are unknown as their identities are confidential.
Despite what Stallman would have you believe, open sourcing your own code is neither right nor wrong. It's just a choice.
There are millions of registered patents and the chances that your clean-slate ideas were already invented and patented are really high.
Open sourcing means exposing patent infringements to the public (even if you are not really aware that you are infringing anything), which means that you need to invest on a strong legal team in order to go through all possible patents and to deal with all possible litigations you might face.
In order words, open source requires much more than ideals, it also requires butt loads of money.
This is an excuse, basically. They just don't want to because they fear revenue lost to compatible implementations.
The only secrets left are the bits responsible for turning OpenGL (or Vulkan now, I guess) calls into programs to run on the GPU.
I can think of AMD adopting and then ditching VLIW for one.
But on a GPU, the whole interaction between the GPU and the application is abstracted by APIs like OpenGL and Vulkan and you own the driver, you own the compiler, you own the implementation and you own the architecture. So companies tend to protect their "secrets" since they own the whole product.
If you are asking me why is it different... Ask these patent trolls instead:
- https://techcrunch.com/2014/09/04/nvidia-sues-samsung-and-qu...
- http://www.anandtech.com/show/11101/amd-files-patent-complai...
It's not an excuse, it's the sad reality.
Just as on a GPU, the whole interaction between the CPU and the application is abstracted by APIs[1] like C and Python.
[1] Yeah, we don't call them APIs. But then we don't call GLSL a "API" either. They're all languages.
Easy for you to say, harder when millions to hundreds of millions are at stake.
Especially when this crap is at the root of why virtually every embedded linux product has serious security flaws that never get fixed. You cant update the kernel if you cant update the drivers.
If you want to blame someone, starting by blaming the OEM.
Hyperbole much? 7 billion people on the planet, and "more than hundreds of millions" of them are waiting with bated breath for the "de-crappification of the embedded ARM driver ecosystem"?!?
There is always legal risk in open sourcing code. Infact there is legal risk from pretty much any action whatsoever. Good, responsible companies don't let that become a barrier to doing the right thing.
If ARM really cared, GPU stuff would be open source. The fact it isn't pretty strong indication they don't. Don't just accept it when lawyers say no.
After all AMD and Intel both have full open source graphics stacks, and the world hasnt exploded yet.
Should also be noted, keeping stuff closed source is not very strong protection against reverse engineering, if it was DRM would actually work, and it never really has, dispite decades of effort. So its doubtful that keeping stuff closed is much protection against patent lawsuits.