- Home /
Difference between Opengl ES1.1 / 2.0 (armv6 armv7)?
I have just started my first project for the iPad, and had problems with performance much earlier than expected. Not doing anything fancy and adhering to the general tips. However, what apparently makes a massive difference in terms of rendering performance is which architecture I build for. ES1.1 (armv6) seems to perform much better than the 2.0 version.
Can anyone elaborate on the difference between the two and why it seems like 1.1 armv6 is the one to use? Also, are we required to buld for armv7 in any way?
Many thanks in advance for any information!
BTW - Sorry for the ignorance, have searched high and low. :)
Bump..I just Googled for this exact same questions and found the link back to this question.
According to what I have managed to find out, there is a big difference between the Ogl ES 1.1 and 2.0 architectures and Unity will do its best trying to adapt existing shaders to 2.0 (but with a performance penalty). Unless one develops custom 2.0 shaders, it is best left alone. Also, armv6 as a target will likely be "legal" as long as it is permitted to develop and distribute for older devices. I would imagine Unity will rework shaders etc. before 2.0/armv7 becomes mandatory.
FWIW, I'm seeing the exact same performance degradation when moving from ES1.x to ES2.0 on Android tablets ($$anonymous$$indle Fire HD) as well.
Answer by anomalous_underdog · Jan 28, 2011 at 05:23 PM
OpenGL ES 2.0 allows for fancier graphical effects such as per-pixel lighting, reflective surfaces, and overall better shader support.
If you set your target platform to universal armv6 + armv7, it will use OpenGL ES 2.0 if available, and fallback to OpenGL ES 1.1 if not.
iPhone 3GS, iPhone 4, and iPad are all OpenGL ES 2.0 capable. I am not familiar with the iPod touch devices, but most likely the new generations of iPod touches are also OpenGL ES 2.0 capable.
All of them however, have backwards compatibility for OpenGL ES 1.1 so if you don't need the extra fancy effects, it will be better for you to set your platform to armv6 only to reduce the binary app size.