diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index e301e44c04bfd..22d3c6f444941 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -649,7 +649,8 @@ static void android_view_GLES20Canvas_updateTextureLayer(JNIEnv* env, jobject cl float transform[16]; sp surfaceTexture(SurfaceTexture_getSurfaceTexture(env, surface)); - surfaceTexture->updateTexImage(); + while (surfaceTexture->getQueuedCount() > 0) + surfaceTexture->updateTexImage(); surfaceTexture->getTransformMatrix(transform); GLenum renderTarget = surfaceTexture->getCurrentTextureTarget();