Estoy intentando por un buen tiempo optimizar la velocidad de fotogramas de mi juego sin realmente avanzar. Estoy ejecutando el último iPhone SDK y tengo un dispositivo iPhone 3G 3.1.2.iPhone optimización de rendimiento de openGLES
Invoco alrededor de 150 drawcalls, que representan aproximadamente 1900 Triangles en total (todos los objetos se texturizan usando dos capas de textura y multitextura. La mayoría de las texturas provienen de la misma texturaAtlasTexture almacenada en pvrtc 2bpp comprimido textura). Esto se renderiza en mi teléfono a alrededor de 30 fps, lo que me parece demasiado bajo para solo 1900 triángulos.
Intenté muchas cosas para optimizar el rendimiento, incluyendo agrupar los objetos en lotes, transformar los vértices en la CPU y representarlos en una sola invocación. este yelds 8 drawcalls (como opuesto a 150 drawcalls), pero el rendimiento es más o menos el mismo (fps caen alrededor de 26fps)
Estoy usando vértices de 32byte almacenados en una matriz intercalada (12bytes position, 12bytes normales, 8bytes uv) . Estoy renderizando TriangleLists y los vértices están ordenados en orden TriStrip.
Hice algunos perfiles, pero realmente no sé cómo interpretarlo.
instrumentos relacionados con el muestreo utilizando instrumentos y Toma de Muestras yelds este resultado: http://neo.cycovery.com/instruments_sampling.gif me dice que una gran cantidad de tiempo que se gasta en "mach_msg_trap". Busqué en Google y parece que se llama a esta función para esperar otras cosas. Pero espera ¿qué?
instrumentos en OpenGL instrumentos con los yelds módulo OpenGL este resultado: http://neo.cycovery.com/intstruments_openglES_debug.gif pero aquí he realmente ni idea de lo que me están diciendo esos números
perfiles de tiburón: perfiladora de tiburón no le dijo me mucho tampoco: http://neo.cycovery.com/shark_profile_release.gif el número más grande es de 10%, pasó por drawTriangles - y todo el resto se gasta en funciones de porcentaje muy pequeñas
¿Alguien puede decirme qué más podría hacer para descubrir el cuello de botella y podría ayudarme a interpretar esa información de perfil?
¡Muchas gracias!