Imagination PowerVR SDK Blog

unable to use polygon offset


#1

I think I have found a driver bug with glPolygonOffset, in fact it is impossible to use it.
When I enable polygon offset via

Code:

glEnable(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(0.75f,1);
// or: glPolygonOffset(0,1);
// or: glPolygonOffset(0.75f,0);

//do some rendering ...

glDisable(GL_POLYGON_OFFSET_FILL);

The device shows the first rendered frame, then sudenly the menu, from where the app was opened, shows, and this repeats very fast. Also, now it is impossible to close the application and the screen keeps showing previous frames when the application is minimized. Everything works fine when disabling polygon offset via glDisable or glPolygonOffset(0,0).

My device is a Sony Ericsson Satio.


#2

Hi,

I also experience the same problem, I have tested on the following devices:
- on iPad, iPhone 3G S and 4G, so SGX 535: just works as expected
- on Palm Pre and Pre Plus, so SGX 530: impossible to find usable values
- on Samsung Galaxy S, so SGX 540: seems that I can manage to make it work, but not found yet a couple of values that work in all my cases
- on Qualcomm GPUs: all values are consistent across devices (tested on Palm Pixi, Nexus One, etc.)

So, my question is: is it a known problem, and is there any workaround, clues, ideas, whatever? Its very annoying when doing multipass rendering such as texture projectors or dynamic shadows…


#3

NiCoX, when you say you're having the same problem, does that mean you're getting previous frames flashing up etc. in the same way that 3DGamer is?

We've looked at this issue but we haven't reproduced it yet and we haven't any known issues with this function.

Can either of you send us a simple example that exhibits the problems so that we can investigate to devtech@imgtec.com?
Gordon2010-09-30 11:52:56

#4

Hi Gordon,

First of all thanks for the fast reply.
Indeed you are right I do not have exactly the same issue: in my case, using the polygon offset just does not seem to do the job of offsetting the depth values, or at least it is not consistent across SGX devices.
- On Palm Pre, for instance, I tried lot of couples of values for the glPolygonOffset parameters, positive ones, negatives ones, but everything I test that is different from (0,0) leads to “nothing rendered” (I mean for the additional passes using depth offset).
- On the Galaxy S, I do not remember exactly (I think I’ll do a chart today in order to understand the behavior), but I managed to get a good result on one of my tests, but that was completely wrong in another test. And if I managed to make it work in my second test, the first one were broken.

I’ll send you a mail with some demos showing the problem later today.

Thanks again for your support.


#5

Mail sent Smile


#6

was there ever a followup to this?