I have noticed some incorrect behavior when running my company's game on an Adreno 330 GPU
We have a rather large shader that draws the worldmap for our game. We've recently been making a lot of changes to the shader and have constantly run into a lot of problems
The most common problem is that the shader just outputs black. We ahve yet to figure out any rhyme or reason for this. We'll make some shader changes and the screen is black, we make some more and the worldmap renders properly again. There's a possibility that this is related to the last MAD instruction simply failing (I can duplicate the issue when the last instruction before returning is MAD) but I don't ahve access to low-level enough information about the GPU to confirm or deny that.
We've also run into a problem where only certain parts of the world map are black. Which parts exactly vary significantly. There's one bug where fragments that we perform a color replacement operation on are black (the color replacement is relatively complex code), and one where just a section of fragments are black
Current theories are that our shader is simply doing too much for the 330 to handle. Is there any sort of limit, either hard or soft, on the number of instructions allowed in a single fragment shader?
This is a relatively public forum and i'm under NDA so I can't post the shader here, but I could definitely provide it in a private message to a Qualcomm person
Any help you can give, even general information about the capabilities of the Adreno 330 (beyond what I can get from gpuinfo.org) would be very helpful.
Thanks in advance,
David