iPhone 3GS outperforms Nexus One in FPS drag race

Apple’s iPhone 3GS recently outperformed Google’s Nexus One smartphone in a graphic drag race conducted by Distinctive Developments (DD).

“[The test] contains a 3D environment and multiple animated 3D characters. The GPU is stress tested due to the high number of polygons in the scene and the CPU is stress tested as it is calculating the bone & skinning of the animation,” the company explained in an official blog post.

“Starting up the test on both devices shows that the iPhone 3GS runs at 60 frames per second (fps) and the Nexus at between 30 to 35fps. As we add more [female] models until we get to 8 models we see that the frame rate has dropped to 29fps on the iPhone and approx 21fps on the Nexus. Therefore, on the face of it, it seems the iPhone is 138% faster in this scene.”

According to DD, one of the most important differences between the two devices is the fact that the Nexus sports a much higher resolution screen – which forces the GPU has to fill 2.5 times as many pixels on the Nexus than it does on the iPhone. 

DD also noted that switching the viewport size to 480×320 on the Nexus with just two characters provided a frame-rate increase from 30fps to 40fps. 

However, the frame rate remained at a low 21fps when tested with 8 characters on screen.

“This reveals that the bottleneck to performance must be elsewhere. We test[ed] this by turning off the animation bone & skinning calculations,” the DD blog post continued. 

“Doing this [demonstrates] that drawing to the full screen on the Nexus with the animation disabled has no effect on the frate-rate; yet when only drawing to the same screen area as the iPhone then the frame rate increases from 20fps up-to 25fps.”

The company concluded that the Nexus One is primarily “GPU fill-rate limited,” while the lack of access to the Neon float-point instructions allows the CPU to “only just keep pace” with the fill-rate.

“We would therefore strongly advise the Android team at Google to update the NDK to a new version of GCC so Neon floating-point code can be written to take full advantage of the CPU in the Driod & Nexus,” recommended DD.

“It may only be used by a handful of developers but it is these developers that will push the boundaries of Android games development and show what the platform can do.”