We have a OGLES 2.0 glScissor bug that only occurs on android PowerVR SGX devices (other vendor GPUs or the same GPU on iOS work fine). The bug manifests itself as scissored fragments that based on the current scissor rect as specified by glScissor should not be scissored, in other words it appears that occasionally the driver’s scissor rect doesn’t match the specified scissor rect. Disabling GL_SCISSOR_TEST causes the intermittent flickering (scissored) fragments to draw as expected. Our gui system makes heavy use of scissoring and presently it is not a performance bottle neck so spending the time to move to a stencil based test doesn’t make sense unless that is the only way to solve this problem. In an effort to probe the GL state during the draw calls that manifest this problem I tried using PVRTrace, but I am getting an “Error in transfer” message while trying to do a networked capture, it consistently gets to a certain point in the transfer and then the error occurs. I have however validated the GL state using perfhud es on a tegra devkit. I have spent a couple days trying to suss out what combination of state is causing this issue to no avail, has anybody else experienced this issue? I am using a Galaxy S with Froyo as my test device, but the problem occurs on all of our PowerVR test devices: Nexus S, Galaxy Tab, Galaxy Nexus; and all android versions: 2.2 - 4.0.1.
Would it be possible for you to email an apk with an example of the error to firstname.lastname@example.org? Then we can take a look internally and let you know what we find.
Sure I’ll send you a link.
I’m seeing a similar problem, although for me it’s in OGLES 1.1. Was the cause of this issue ever resolved?
For me, it’s on a Galaxy Tab (1), OS v2.3.3. When scissor test is enabled, occasional flickering is observed. It seems like certain fragments inside the scissor rect are failing the test when they shouldn’t. It’s very random in nature. The same code running on iOS devices with the same GPU don’t show the issue.