I am porting a game over to maemo 5. I am using OpenGL ES 2.0 to do this. I am in the process of rendering intro movies and require that the texture be updated at 14.9 frames per second. This is where my issue appears.
If I perform no timing calculations the movie runs well above 14.9 frames per second and I have no sound stuttering at all, around 30fps (Using pulse audio multi threaded main loop to perform sound) but as soon as I try to keep track of the time taken to render the frame then the movie slows down to a crawl and the sound begins to stutter terribly, around 8 - 10fps. The movie update function is quite intensive, sometimes taking up to 68ms to finish (Best I can gather, but these results could be wrong due to timing issues)
I believe this is due to the asynchronous nature of OpenGL ES 2.0 rendering as long as you let it do its thing. Is there anyway that I can keep track of the current frame time without slowing down everything?
I have tried using clock_gettime with CPU_MONOTONIC and CPU_PROCESS_CPU_ID and gettimeofday with no success.
So I suppose if you have any suggestions how I can get this done, let me know, I have been racking my brain for a few days on this now. Once I figured out I was having timing issues and not performance issues.
I am porting a game over to maemo 5. I am using OpenGL ES 2.0 to do this. I am in the process of rendering intro movies and require that the texture be updated at 14.9 frames per second. This is where my issue appears.
If I perform no timing calculations the movie runs well above 14.9 frames per second and I have no sound stuttering at all, around 30fps (Using pulse audio multi threaded main loop to perform sound) but as soon as I try to keep track of the time taken to render the frame then the movie slows down to a crawl and the sound begins to stutter terribly, around 8 - 10fps. The movie update function is quite intensive, sometimes taking up to 68ms to finish (Best I can gather, but these results could be wrong due to timing issues)
I believe this is due to the asynchronous nature of OpenGL ES 2.0 rendering as long as you let it do its thing. Is there anyway that I can keep track of the current frame time without slowing down everything?
I have tried using clock_gettime with CPU_MONOTONIC and CPU_PROCESS_CPU_ID and gettimeofday with no success.
So I suppose if you have any suggestions how I can get this done, let me know, I have been racking my brain for a few days on this now. Once I figured out I was having timing issues and not performance issues.