У меня была такая же проблема с миганием / мерцанием, чередующимся между текущим изображением и фиксированным изображением ... это происходило на 3GS, но не на 3G, первом поколении или на симуляторе.
В моем случае проблема была вызвана тем, что я настраивал контекст в ESRenderer, но фактически ничего не рисовал, т. Е. В коде ниже [scene draw] ничего не рисовал в определенных состояниях. На старых iPhone и симе, когда вы ничего не рисуете, похоже, что он не переворачивает буферы OpenGL ... но на 3GS это происходит. В любом случае, мой обходной путь должен был останавливать анимацию в тех состояниях (то есть останавливать таймер, который вызывает режим рисования), когда я ничего не рисовал.
- (void) draw
{
[EAGLContext setCurrentContext:context];
glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);
glViewport(0, 0, backingWidth, backingHeight);
//Render the GLScene...
[scene draw];
glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
}