Léon Pelletier
Léon Pelletier

Reputation: 2741

Major implementation variations from GPU to GPU in OpenGL ES 2.0?

I noticed that a program that runs without a problem on one Android device will not always run on another device.

What can vary in an implementation of OpenGL ES 2.0 from GPU to GPU? Sadly, I haven't found any good summary of variations in the usage of surfaces, textures, variables declaration (type, precision, etc.) between implementation, so it makes OpenGL ES 2.0 debugging extremely painful. Most of SO answers are: "Maybe you can do this, or that, or that." And there are a lot of contradictions and misunderstanding in the usage of OpenGL ES 2.0.

Anyway. Is there anyone that have enough experience in using OpenGL ES 2.0 on multiple platforms to enumerate a list of what can change between the different GPU implementations, and if there are good practices to maximize the compatibility between devices? Example: Can handling of OES external texture change between devices? Are devices using different logic for Texture Unit?

Upvotes: 1

Views: 79

Answers (1)

rotoglup
rotoglup

Reputation: 5283

I don't have any direct experience on Android GL ES problems across devices, but my understanding is that the most commonly encountered issues are related to GLSL compiler problems.

This is due to GLSL compilers being implemented and provided by each GPU vendor, thus GLSL programs may be compiled by a wide set of compilers, each with their bugs and limitations.

See http://bitiotic.com/blog/2013/09/24/opengl-es-shading-language-potholes-and-problems/ for example.

Upvotes: 2

Related Questions