My frame rate is lower with armv7

i read about the ‘armv6 is dead’-thing under the iOS4.3 topic

i’m now a bit unsure. because my game performs better with armv6.
it mostly uses the simple iPhone/Vertex Colored - shader, but it also contains a lot of transparent things.

is it normal that armv7 performs poorer in this ‘old school’-case? or do i miss something?

I can’t speak to specifics but yes I have heard in quite a few places that armv6 is faster, and to use it instead of armv7 when possible.

thats the wrong approach
First thing to do is disable opengl ES 2.0 in the appcontroller.mm, its the first define you will find.
cause otherwise, if you have lights and alike in they are pixel lights, not vertex lights, which are significantly more costly

So to make sure I am understanding, you are saying that leaving armv7 on and disabling opengl ES 2.0 will give the same performance as using armv6, which would only be faster because it has 2.0 off by default?

No, from what I understand, turning on arm7 will give you a performance increase, but doing so will also enable opengl ES 2.0 which will decrease performance if you aren’t utilizing it. So you have to enable arm7 in Unity and then manually disable opengl ES 2.0 in appcontroller.mm as Dreamora mentioned.

It would be nice if Unity somehow had an option in Unity to enable arm7 but disable opengl ES 2.0 so you didn’t have to do it manually, but it’s not that big of a deal.

That would be great, I have a long list of things to adjust each time I make a build. It would be nice if there were more options in the build settings. I guess that’s why people append builds, but I always worry that something bad might be left in there somehow…

Care to give a rundown?

Use append…that’s what it’s for, so you don’t have to change AppController.mm and stuff each time. Nothing bad happens, although indeed a checkbox for OpenGL ES 2.0 would be nice, plus the other things (kFPS and so on), since having to edit that file is a little clunky. You only have to do it once though. :wink:

–Eric

Here’s my list but you really have to adjust things for what you specifically need for your project -

Set targets to Armv7 Optimised

  • Remove Armv6 from Valid Architectures

  • Add UIRequiredDeviceCapabilities - Armv7 to the info.plist (to specify Armv7 devices only)

  • Replace kEAGLColorFormatRGB565 with kEAGLColorFormatRGBA8 (to stop AA banding)

  • Set - #define USE_OPENGLES20_IF_AVAILABLE to 0 (to limit to opengl ES 1.1)

  • Add Entitlements PList if you are doing an Ad-Hoc Build

  • Set Code Signing.

Thanks Eric for alleviating my append fear :slight_smile: Gonna use that from now on

thank you very much for your help!

basically i just want to disable opengl ES 2.0 in the appcontroller.mm (every time i make a new build), like dreamora said.

but i cannot find the appcontroller.mm.
How do i get there (i use Xcode4.0)?

ah, ok i’m sorry. i found it (in Xcode) in the classes folder. And set the first define to 0.

Must disagree here. I don’t want clutter in Unity, just great, updated documentation to tell me exactly what I can change and what it does.

That kind of goes for most of the new features of Unity 3.0, in fact, for me. :roll_eyes: Too many things that don’t work, and aren’t documented, in an effort to make Unity seem easy to use. It’s like they’re targeting the people who will get Unity Free and make the MMO collab threads…

Thank you for the list Petey!

Hey No worries!
Just watch out with the kEAGLColorFormatRGBA8 bit. It gets rid of the AA banding but I think it might have some other weird effects. I guess there was a reason the unity team left it as is.
I’ve been having some slight trouble with kEAGLColorFormatRGBA8 + Capturing the screen… If it works for you though go for it!

Small tip that I found out helping a guy in IRC.

Basically, if while testing you are appending a lot and building for iphone, then you change unity options and build for ipad as well, then you will find that you get a number of wrong icon size errors when trying to compile/submit.

The solution in this case if you allow it to build for ipad after appending iphone builds is to do a replace, just bear that in mind and copy the mm files you changed back over. This is only relevant if you changed from iphone to ipad when appending.

You can find the IRC channel from the support page. I heartily recommend it to people who just want to chat unity things.