Performance degradation in the new public release

Hi,

Has anyone noticed a performance degradation on Android in the last public release (704)?

I've been using the build 635 for weeks and the performance was good (50/60 fps), but today I switched to 704 and the game is unplayable (10/20 fps).

In the iOS world, oddly (or I should say expectedly), the performance has increased.

Has anyone had the same problem? Any tips on where to start looking at?

Thanks a lot!

Hi Pedro,

I think problem might be related to 32 bit color support:

http://blog.anscamobile.com/2011/11/more-android-daily-build-highlights/

I've seen more than few problem reports after that change (slower fps, alpha problems, etc) and in my opinion speed is more important than the 32 bit color support...

I must also add that change also broke app images on Android emulator. Before that change I was able to run my apps on emulator without any problems, but since the 32 bit color support images are going color distorted. Of course that's not the case on the actual devices but on emulator only.

Thanks PixelEnvision!

That may be the cause.
Any way to turn it off?

I guess not :(

There are few people asking for the same thing but threads were not concluded with a solution other than falling back to earlier daily build... Based on the threads build 641 is the latest build without that problem.

http://developer.anscamobile.com/sites/default/files/corona/2011.641/CoronaSDK-2011.641.dmg

https://developer.anscamobile.com/forum/2011/11/18/build-656-not-good-my-android-build
http://developer.anscamobile.com/forum/2011/11/06/fps-drops-build-656

Maybe you should open a bug report to get that fixed.

the 32 bit color support wasn't as much of a "feature" as it was a bug-fix. iOS was already showing 32bit, but for some reason in the Android API, it defaulted to 16bit textures for openGL. This actually resulted in a few nasty issues with color and also transparency.

Thanks again PixelEnvision.

I have a serious problem now. I'm really interested in some of the new features and bug fixes added in the latest release but my app has been dramatically hit by this 32 bit color support.

@Ansca
Should I file a new bug report for that? Actually it is not a bug, but a feature (one I would certainly drop in favor of a better frame rate).

One more update.

My test device is a Motorola Xoom (Android 3.1). The performance went from 50/60 to 20/25. I've just tested the game on a Sony Ericsson Arc (Android 2.3) and the performance has increased.

Any tips?

I found a recent test which shows the same thing...32 bit generally appears to be slowing down fps on Android... Take a look at DrawTest section...

http://markdingst.blogspot.com/2011/04/android-graphics-benchmark.html

Just an idea but maybe it might be possible to make that optional by using config.lua? So, we can choose between image quality vs fps depending on the type of app we're working on...

Thanks for the link.

I'm trying to squeeze the performance here, but not matter what I do, I will never be able to match what I lost with the 32 bit color support. An option in the manifest would be perfect. Otherwise we will drop Xoom from our targets list (along with any other device that can't handle 32 bit images).

@Ansca
Could you please comment on that?

@perdo, you're welcome...

So, that change only slows down fps on older (16 bit) devices and newer devices with 32 bit support becomes faster?

Hi PixelEnvision

In my tests, things got faster on Nexus S, SE Arc and iOS (3GS, 4). But got slower on Android tablets (Xoom and Galaxy Tab).

Update

After striping the game down, the conclusion is that background images are the problem and this leads to the 32 bit color support. I removed everything, every element in my game, but only when I removed the bg images the performance increased. I'm using 256x256 tiles that are repeated to fill the entire screen. When they are present, the performance is terrible. When they are not, Xoom looks like an Ipad.

So, I have a few options left, like changing my bg, but the game would loose a lot with a blank background. I even tried to fill the background with a green rect (display.newRect) and, to my surprise, the performance goes down, by a lot.

It's strange how a rectangle can affect performance like this.

I want to develop application for enterprise level,for instance,a software for hotel in which a customer will navigated through tab(application software) for accessing the facilities available which i'm developing with the help of android which i find flexible for development but this same scenario i want to repeat for iphone i find corona SDK for cross platform development which uses Lua Scripting but its syntax is basically for game(as i saw)and i thing it will lead me to complexity in future while development so which one will be suitable language (which i can use)?

Sounds as the performance change depends on the OpenGL hardware and/or implementation on the specific device. I would prefer to have this 32-feature configurable as far as I don't need the perfect gradients. I can use dithering for my needs...

Best option - configurable in the app on runtime

Hi Sven,

I (and others here) agree with you. An option in the manifest would do.

@Ansca
Could you please step in?

Can Ansca, by any chance, comment on that?

I still have faith that someone from Ansca will say something here. Who should a pray for?

views:1841 update:2011/12/28 9:26:54
corona forums © 2003-2011