2012-04-17 17 views
38

Hace un tiempo me encontré con un problema con eglSwapBuffers congelar el teléfono con el siguiente mensaje de aparecer en el registro de dispositivo:congelación Android en OpenGL | ES (.. CPU puede ser vinculado de volver a intentarlo)

W/SharedBufferStack(1110): waitForCondition(LockCondition) timed out (identity=28, status=0). CPU may be pegged. trying again. 

He visto discusiones sobre este tema en toda la web, pero la única solución que he encontrado que tiene algún efecto es llamar al glFinish después de eglSwapBuffers. Esta solución, sin embargo, da como resultado que la velocidad de fotogramas caiga por un zumbido de 10-20, lo cual está lejos de ser aceptable.

cuestiones se han abierto y uno puede ser encontrado here

Alguien comentó que el uso de texturas cuadrados eliminan el problema. Al principio, al principio pensé que se refería a las texturas de poder de dos, pero después de asegurarme de que no estaba usando ninguna de las dos texturas y no deshacerme del problema, comencé a pensar que realmente podría haber significado texturas con combinaciones ¿anchura y altura?

Estoy probando un HTC Desire con Android 2.3.3. Alguien comentó que las versiones futuras deberían haber solucionado este problema, pero 2.3.3 está instalado en tantos dispositivos que no podemos ignorarlo.

De todos modos, ¿alguien tiene alguna idea al respecto? Estamos muy cerca de enviar un título y este problema amenaza el cronograma.

+2

Probablemente es un error de su controlador. – robermorales

+1

Esta persona tiene un problema con otro gl swapbuffers, y hay una mitigación propuesta en los comentarios: http://stackoverflow.com/questions/12939705/sdl-gl-swapbuffers-is-intermittently-slow - podría ser útil. .. – Yakk

+1

prueba dumpsys SurfaceFlinger y mira lo que eglSwapbuffers() informa ... compara con tus medidas. – Shark

Respuesta

1

También me encontré con este problema, solía volver a instalar la aplicación y funcionó para mí. De lo contrario, simplemente reinicie su dispositivo. Este problema está relacionado con la emisión interna de OpenGLES. Puede consultar este enlace: Android "cpu may be pegged" bug

Cuestiones relacionadas