let me start of by saying that i love the Qualcomm developer site. I just discovered it recently and the information available along with the tools is pretty awesome.
The reason i post is a bit negative though. Many Android phones out in the wild still sport the Qualcomm MSM72xxa variety of chips which uses an ATI GPU from what i could understand. This chip or its driver has some severe problems on Android. I would be the happiest person in the world if one of you Qualcomm engineers could help me out with some of them. For some of the problems i haven't yet prepared any testable code. If the need arises i can provide you with whatever it is you need.
- The texture matrix stack is not working correctly.
- Rendering non-screeen aligned quads in form of two triangles with either VBOs or VAs is slow. I guess the driver checks the current matrix stack, figures out it's an ortho projection and triggers a fast path for screen aligned quads.
- glSubBufferData is extremely slow, much slower than glBufferData which is a bit surprising. The use case is to replace portions or all of the currently bound VBO, e.g. for uploading skinned mesh data, CPU computed sprites etc. This is also true for the newer Adreno chips.
- Calling glBufferData/glSubBufferData twice on a bound VBO results in memory corruption it seems. You can find a full description with source code at http://www.badlogicgames.com/wiki/index.php/Severe_Bug_Updating_Already_Bound_Buffer_Object.
This leads to seperate code paths for the MSM72xxa in many applications which is a tad bit undesireable. From the desktop i'm used to working around such bugs but i was hoping that it woudn't be such a huge deal on Android. Sadly it is.
Now i'm aware that the MSM72xxa is probably not used in any new handsets in the future. However, the devices that still sport it won't go away anytime soon. Are there any known work arounds for the problems above, besides the obvious ones? Are there any plans to give the driver's a little love and fix the problems? The biggest one is the last bullet point above.
Sorry for the wall of text. Looking forward to any feedback and answers.