Imagination PowerVR SDK Blog

Wired vertical unsync


#1

Hello everybody,
I am experiencing some issues on the scene drawing and I am not sure about the causes.
I think there are no better explanations for this problem than a couple of images. Please see images below.
Some details: those lines are not fix, they move left and right and they aren’t present all the time. They appear when my object in the scene is moving a lot. I’m using bones to move mesh’s vertexes.
Could anyone help me to understand why this is happening and find a solution?
Thanks in advance!
Riccardo








#2

What OS and 3D API (if any) is in use?


Even though the line is not horizontal in your picture, this may be vsync tearing; from the photos, it’s difficult to tell which way is “up” from the hardware’s perspective (actually there’s no particular reason why it should be obvious from seeing the real device, let alone a photo, although it’s usually fair to assume that “up” in hardware terms matches the users point of view when holding the device upright).

Are you calling eglSwapInterval?

eglSwapInterval(,1) (the default setting) should prevent vsync tearing.

It’s also possible that your device is rendering to the front buffer rather than to a back buffer?

Aaron.


#3

ERRATA CORRIGE: the line IS STATIONARY.




#4

Hi Aaron,
thanks for your kind reply, I was a bit hurrying and I forgot to give important details.
I am using PowerVR SDK OpenGL ES 2.0 on a Beagleboard XM Rev C running Linux Angstrom.
The drawing method I use is the same of the Skinning demo in the TrainingCourse folder of the SDK.




#5

Do other apps, including the SDK apps, all tear in the same location? If so, I suspect that your install is set to use front buffer rendering.


It may be informative to search the following page for the word “front”:
http://processors.wiki.ti.com/index.php/SGXDbg


#6

I tried the Skinning, LightMap,ComplexLighting and other demos and I can’t see lines like that.



#7

I tried to insert the eglSwapInterval in the initialization phase but I think I am giving silly values in the 1st parameter (Display). How should I call eglSwapInterval?




#8

In the Skinning example, as said in the comment before the renderScene function:
eglSwapBuffers() will be performed by PVRShell automatically. PVRShell will also manage important OS events.”