Hi there,
I’m currently profiling my game on my android nexus one and I’m getting very high numbers in cpu-present which, if I understand correctly, means that I’m gpu bound. My game consists of a straight road with lots of objects that you have to avoid and they are flat sprites. I know alpha testing/blending can be hard on performance but I’m getting an average cpu-present of 50-60 which is insanely high.
However, before trying to optimize anything, I did some tests and an empty scene with only a few hud elements still gives me an average cpu-present of 30ms, that seems pretty unacceptable.
Look at these profiler stats from my Nexus One from a totally empty scene.
----------------------------------------
Android Unity internal profiler stats:
cpu-player> min: 2.2 max: 20.5 avg: 6.0
cpu-ogles-drv> min: 0.2 max: 1.5 avg: 0.4
cpu-present> min: 8.2 max: 33.3 avg: 23.0
frametime> min: 15.2 max: 42.4 avg: 29.4
draw-call #> min: 1 max: 1 avg: 1 | batched: 0
tris #> min: 2 max: 2 avg: 2 | batched: 0
verts #> min: 4 max: 4 avg: 4 | batched: 0
player-detail> physx: 0.4 animation: 0.1 culling 0.0 skinning: 0.0 batching: 0.0 render: 2.0 fixed-update-count: 1 .. 2
mono-scripts> update: 2.6 fixedUpdate: 0.0 coroutines: 0.2
mono-memory> used heap: 4317184 allocated heap: 5033984 max number of collections: 0 collection total duration: 0.0
----------------------------------------
I even went further and created an empty unity project and published to my android and I still get avg 15 for cpu-present, is Unity Android still unoptimized? I can’t even get 60fps with an EMPTY scene, that’s pretty insane.
Furthermore, I get very decent framerates on the iPad 1 and the iPhone 3GS with the same project, absolutly nothing like these profiler numbers.
Does anyone have ideas or pointers to fix that?