Simple question (481387)

Hello,

I’m wondering why Android platform doesn’t have ARMv6AndARMv7 option like iOS…

Available Android options:

  • ARMv7 only
  • ARMv6 with VFP

Available iOS options:

  • ARMv6
  • ARMv6AndARMv7
  • ARMv7

I would like to benefit from a better hardware whenever it’s possible, as much downgrade “special effects” for ARMv6WithVFP. It happens automatically for iOS by choosing ARMv6AndARMv7 option. Why there is not such an option for Android?

Countries like Brazil and India have a huge usage of ARMv6WithVFP compatible devices, for instance Samsung Galaxy Y.

What I have to do to target both ARMv7 and ARMv6WithVFP Android devices in this scenario? Submit and maintain 2 versions of the same project to Google Play Market and filter by device there? Not good…

Some more informations. I have performed some tests in Samsung Galaxy S and Samsung Galaxy Y.

Galaxy S works normally with these settings:

  • ARMv7 only (OpenGL ES 1.x and OpenGL 2.0)
  • ARMv6 with VFP (OpenGL ES 1.x and OpenGL 2.0)

The shader usability looks great when you select OpenGL 2.0 whatever ARM selection is set.

Galaxy Y works as follows:

  • ARMv7: not compatible
  • ARMv6 with VFP (OpenGL ES 1.x): works normally with a downgraded shader look
  • ARMv6 with VFP (OpenGL ES 2.0): don’t work

According to dreamora it’s not possible to change OpenGL level at runtime:
http://forum.unity3d.com/threads/84140-Setting-quot-Graphics-Level-quot-at-runtime

When you are working with iOS there’s an parameter in xcode called USE_OPENGLES20_IF_AVAILABLE.

So my question to Unity staff is why there is no such way to use OpenGL 2.0 if available in a dynamic way? Excuse me if I’m missing something, but it seems to me that Android platform is less flexible than iOS.

Thanks