--- qt4-x11-4.6.3~git20100411-orig/src/opengl/qglpaintdevice.cpp 2010-04-27 09:28:27.000000000 +0200 +++ qt4-x11-4.6.3~git20100411/src/opengl/qglpaintdevice.cpp 2010-05-13 02:17:29.000000000 +0200 @@ -163,7 +163,14 @@ float alpha = c.alphaF(); glClearColor(c.redF() * alpha, c.greenF() * alpha, c.blueF() * alpha, alpha); } +#if defined(QT_OPENGL_ES) + // In egl chips like SGX and MBX clearing all buffers is a signal for the driver + // that we're starting a new frame and that the previous one can be thrown away. Without this + // we're suffering from a very noticable perf penalty. + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); +#else glClear(GL_COLOR_BUFFER_BIT); +#endif } }