(Android Market link)
So, I was reading reviews of some Android phones late last night and noticed that a lot of places are still testing OpenGL performance with NeoCore. It's old enough that it basically runs at 60fps on every device out there, and is actually OpenGL 1.1 based besides. It seems like it's kind of past its prime.
As we have a lot of OpenGL using wallpapers, I figured I'd take a stab at putting together a simple benchmark program using some of the same materials. This flew together pretty fast once I started going with it, it's definitely not really finished yet but it works and delivers logical results. I figured I'd get it out there and see if anybody's interested in using it.
So, you'll see there are three tests it runs, then averages the results. The logic I went with was to try to stress something different with each test. Here's what each one does:
The Bamboo test leans very heavily on geometry and vertex shader performance. It renders 75 models, each of which is about 2000 vertices. The vertex shader uses sin/cos to bend the stalks based on the vertex's Z height, then calculates a texture coordinate based on a light vector. They're rendered front to back with depth buffering using an interleaved model, with a very simple pixel shader that does one texture sample.
The Wavescape test leans very heavily on fillrate and texture samples. The geometry here amounts to maybe a thousand vertices, but the post-processing requires two levels of full-screen render to texture, with the light ray trails doing 12 texture samples to create the smooth blur effect. Screen resolution vs GPU speed makes a huge difference here.
Finally, the Galactic Core test stresses CPU and the driver's handling of draw calls. Primarily, it's a particle system consisting of 1024 particles orbiting a center point. Each particle spins based on its distance from the center, and each particle is its own small model, resulting in a very large number of draw calls and uniform updates.
I had a good time putting this together, and will hopefully have some time to nurture it into a more proper product given some time. Meanwhile, hopefully some folks will get use out of it.
I tested it on several devices, here are some of the averages:
Galaxy Nexus: 13.59 & 93 frames
Incredible 2: 26.138 & 183 frames
Motorola Xoom: 20.492 & 196 frames
Motorola Droid3: 23.97 & 163 frames
I feel a bit sorry for the Nexus, that screen resolution is more than its GPU can really handle filling. It does rate the highest of any of these on the Bamboo test though.