Forums - OpenGL ES shader giving incorrect results on Adreno 330

1 post / 0 new
OpenGL ES shader giving incorrect results on Adreno 330
ddubois
Join Date: 19 Jan 18
Posts: 5
Posted: Thu, 2018-02-15 18:06

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

  • Up0
  • Down0

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.