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
- 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.
hi there rvoisey,
Right now I am facing the same challenge you did a year ago
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
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.
Thank you for the reply.