I am developing an Android application that uses OpenGL to render a 3D ball on a grass field. The user can interact with the ball (rotate it by touch).
The problem is as follows: Everything works well on my Samsung Galaxy S2, but when I try it on other devices (HTC incredible S, HTC sensation, …) I get a distorted image with multiple cropped viewports on the screen (see attached image).
I have tried everything I could think of: disable textures, disable lights, etc… nothing seems to work.
I know it is hard to help without an actual code, but I don’t really know which part of the code is causing this. So I’m asking if anyone has any idea what could possibly be causing this problem.
My guess is something related to GLSurfaceView or the Renderer subclass or the order of creation of those objects…
Take a look at the attached image and let me know if you know what the problem is.

EDIT:
onSurfaceCreated code:
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
gl.glShadeModel(GL10.GL_SMOOTH);
gl.glClearDepthf(1.0f);
gl.glEnable(GL10.GL_DEPTH_TEST);
gl.glDepthFunc(GL10.GL_LEQUAL);
gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glEnable(GL10.GL_NORMALIZE);
}
My friend. I have experienced the same problems in the past and it was due to the depth number of bits supported by the gpu. For instance on my galaxy it supported 24bit depth buffer while on tegra2 devices only 16 if i remember well. Anyway, the sokution is during egl config choose function where u have to configure it accordingly.
Try to post the code of th egl config so i can gelp you.
P.s. Welcome aboard 🙂