-
Sam Lantinga authored
Vittorio Giovara 2010-07-16 19:09:28 PDT i was reading SDL_renderer_gles and i noticed that every time we there is some gl call the gl state is modified with a couple of glEnableClientState()/glDisableClientState. While this is completely fine for desktops systems, this is a major performace kill on mobile devices, right where opengles is implemented. Normal practice in this case is to update the glstate once, keep it always the same and disable/enable other states only in very special occasions. On the web there's plenty of documentation (on the top of my head http://developer.apple.com/iphone/library/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Performance/Performance.html#//apple_ref/doc/uid/TP40008793-CH105-SW5 ) and i personally tried this. I modified my code and got a 10 fps boost, then modified SDL_render_gles and shifted from 40 fps to 50 fps alone -- considering that i started from ~30fps i got an 80% performance increase with this technique. I have attached a dif of my changes, hope that it will be included in mainstream.
62dddd62
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
atomic | ||
audio | ||
cpuinfo | ||
events | ||
file | ||
haptic | ||
joystick | ||
libm | ||
loadso | ||
main | ||
power | ||
stdlib | ||
thread | ||
timer | ||
video | ||
SDL.c | ||
SDL_android.cpp | ||
SDL_android.h | ||
SDL_assert.c | ||
SDL_assert_c.h | ||
SDL_compat.c | ||
SDL_error.c | ||
SDL_error_c.h | ||
SDL_fatal.c | ||
SDL_fatal.h |