On a real android device (EVO) the SDLActivity has surfaceChanged called with width/height parameters set to 800x405. Eventually those parameters get passed all the way down to SDL/src/render/opengles2/SDL_render_gles2.c:
glTexImage2D(tdata->texture_type, 0, format, texture->w, texture->h, 0, format, type, NULL);
Which will fail if the w, h arguments are not powers of 2. I hacked SDL to set the screen size to 1024x512 just to get this to work and it does.
Now my game runs but the screen doesn’t update. I see a lot of
E/libEGL ( 6763): called unimplemented OpenGL ES API
Presumably caused by SDL trying to blit the screen. I am using the compat library 1.2.14 interface, in case it matters. I’m not sure how to resolve this issue.
I have tested my game in the emulator running with 2.2 (which is what the EVO has) and it works there, so my only guess is that the EVO manufacturer put in some opengles library that doesn’t implement some functionality.