Imagination PowerVR SDK Blog

Vsync locked dynamic textures


#1

Hi





Apologies if this is a dumb question. I just started developing with OGLES 1.1 on OMAP3530 under Linux 2.6.28 using v3.00.00.06 of the libs. My application uses dynamic textures which are generated by my code and must then be rendered onto geometry by the SGX engine. I want generate one frame of texture per vsync.





I thought the following might work:





Set eglSwapInterval to 1


Loop


- Generate texture


- Upload texture with glTexImage2D


- Plot geometry (with texture vertices)


- Call eglSwapBuffers





I’d hoped eglSwapBuffers would block on vsync, but it doesn’t. Actually setting eglSwapInterval to any value at all makes no noticeable difference to the output on screen on the loop rate. I get about 800 loops per second with a trivial instance of the texture generator.





Any thoughts?





Thanks





Rob






#2

hi there rvoisey,

Right now I am facing the same challenge you did a year ago :slight_smile:
I am also generating and rendering textures in a loop.
It works, but the tearing is very noticeable when a new texture is being drawn while the previous has not yet been fully drawn.
I am using eglSwapBuffers, but just as you did I don’t seem to notice any doublebuffering taking place. I tried eglSwapInterval but that also didn’t make any difference.

Did you find a solution for this problem?? tnx :slight_smile:


#3

The following is specific to the OMAP 35xx…





I had a chat with TI about the problem and reached the conclusion that existing methods for texture streaming aren’t up to the job (and neither were they designed for it). It’s inefficient at every level, from copying the data into texture memory to invalidating the rendering pipeline.





What’s needed is a texture streaming extension, which is well defined for some other OGLES implementations. I understand TI have something working internally but as far as I’m aware this hasn’t been released yet.





Due to this plus the lack of RGBA framebuffer support, I put the project aside several months ago and moved on to something else until the libraries gain those features.





Regards





Rob



#4

Thank you for the reply.


Perhaps someone else has got any ideas on the matter?
andre2010-02-10 18:28:38

#5

These links should guide you through this, there is also a gstreamer glsink submission that you should look at if you are on Linux. RGBA support is available since last 3 releases,