The IP is locked out because there's an extra cost to the business to use it.
Also embedded/mobile GPUs haven't been around nearly as long as OpenGL ES. Heck the Adreno 2xx which was one of the first real-ish GPUs was released in 2009 and even then you'd be lucky to get any sort of reasonable fill rate out of it. These type of GPUs really haven't come into their own until the last 3-4 years.
> Heck the Adreno 2xx which was one of the first real-ish GPUs was released in 2009 and even then you'd be lucky to get any sort of reasonable fill rate out of it.
Adreno 200 is one of the worst offenders! There was no excuse for not being able to call glTexSubImage2D() without crashing the driver (for example). Qualcomm had the money to create a working driver; they just didn't.
Sure, tape-out may be cheaper with one chip line, but we aren't talking about chips where the feature is there in silicon but intentionally disabled (say, for the other more expensive variant). We're talking about a feature that the chips and systems are advertised as having, which doesn't work as it is intended to because the driver stack is broken. Where the vendor specifically says '....supports OpenGL ES x.x', but then you find it sort of does but not really and it's broken and won't ever be fixed.
It's even more frustrating because there's a whole open-source community that would be willing to do the work of writing the drivers even, but then of course the vendors won't give them the data they need because of IP concerns. It just really sucks.
Each vendor has their share of driver/hw problems, some are just more widely published than others :). That bug was gnarly on the 200, but it was fixed. If the GL feature wasn't included in Android's HWUI renderer all of the major vendors had at least one thing wrong.
That's a problem, if so! We wouldn't accept "we won't give you working drivers for the hardware you bought unless you pay us" in the PC world; we shouldn't accept it in the embedded world either.