Earlier this morning we published our first impressions on Apple's iPad 2, including analysis on camera quality and a dive into the architecture behind Apple's A5 SoC. Our SoC investigation mostly focused on CPU performance, which we found to be a healthy 50% faster than the A4 in the original iPad - at least in web browsing. We were able to exceed Apple's claim of up to 2x performance increase in some synthetic tests, but even a 50% increase in javascript and web page loading performance isn't anything to be upset about. We briefly touched on the GPU: Imagination Technologies' PowerVR SGX 543MP2. Here Apple is promising up to a 9x increase in performance, but it's something we wanted to investigate.

Architecturally the 543MP2 has more than twice the compute horsepower of the SGX 535 used in Apple's A4. Each shader pipeline can execute twice the number of instructions per clock as the SGX 535, and then there are four times as many pipes in an SGX 543MP2 as there are in a 535. There are also efficiency improvements as well. Hidden surface removal works at twice the rate in the 543MP2 as it did in the 535. There's also a big boost in texture filtering performance as you'll see below.

As always we turn to GLBenchmark 2.0, a benchmark crafted by a bunch of developers who either have or had experience doing development work for some of the big dev houses in the industry. We'll start with some of the synthetics.

Over the course of PC gaming evolution we noticed a significant increase in geometry complexity. We'll likely see a similar evolution with games in the ultra mobile space, and as a result this next round of ultra mobile GPUs will seriously ramp up geometry performance.

Here we look at two different geometry tests amounting to the (almost) best and worst case triangle throughput measured by GLBenchmark 2.0. First we have the best case scenario - a textured triangle:

The original iPad could manage 8.7 million triangles per second in this test. The iPad 2? 29 million. An increase of over 3x. Developers with existing titles on the iPad could conceivably triple geometry complexity with no impact on performance on the iPad 2.

Now for the more complex case - a fragment lit triangle test:

The performance gap widens. While the PowerVR SGX 535 in the A4 could barely break 4 million triangles per second in this test, the PowerVR SGX 543MP2 in the A5 manages just under 20 million. There's just no competition here.

I mentioned an improvement in texturing performance earlier. The GLBenchmark texture fetch test puts numbers to that statement:

We're talking about nearly a 5x increase in texture fetch performance. This has to be due to more than an increase in the amount of texturing hardware. An improvement in throughput? Increase in memory bandwidth? It's tough to say without knowing more at this point.

Apple iPad vs. iPad 2 Apple iPad (PowerVR SGX 535) Apple iPad 2 (PowerVR SGX 543MP2) Array test - uniform array access 3412.4 kVertex/s 3864.0 kVertex/s Branching test - balanced 2002.2 kShaders/s 11412.4 kShaders/s Branching test - fragment weighted 5784.3 kFragments/s 22402.6kFragments/s Branching test - vertex weighted 3905.9 kVertex/s 3870.6 kVertex/s Common test - balanced 1025.3 kShaders/s 4092.5 kShaders/s Common test - fragment weighted 1603.7 kFragments/s 3708.2 kFragments/s Common test - vertex weighted 1516.6 kVertex/s 3714.0 kVertex/s Geometric test - balanced 1276.2 kShaders/s 6238.4 kShaders/s Geometric test - fragment weighted 2000.6 kFragments/s 6382.0 kFragments/s Geometric test - vertex weighted 1921.5 kVertex/s 3780.9 kVertex/s Exponential test - balanced 2013.2 kShaders/s 11758.0 kShaders/s Exponential test - fragment weighted 3632.3 kFragments/s 11151.8 kFragments/s Exponential test - vertex weighted 3118.1 kVertex/s 3634.1 kVertex/s Fill test - texture fetch 179116.2 kTexels/s 890077.6 kTexels/s For loop test - balanced 1295.1 kShaders/s 3719.1 kShaders/s For loop test - fragment weighted 1777.3 kFragments/s 6182.8 kFragments/s For loop test - vertex weighted 1418.3 kVertex/s 3813.5 kVertex/s Triangle test - textured 8691.5 kTriangles/s 29019.9 kTriangles/s Triangle test - textured, fragment lit 4084.9 kTriangles/s 19695.8 kTriangles/s Triangle test - textured, vertex lit 6912.4 kTriangles/s 20907.1 kTriangles/s Triangle test - white 9621.7 kTriangles/s 29771.1 kTriangles/s Trigonometric test - balanced 1292.6 kShaders/s 3249.9 kShaders/s Trigonometric test - fragment weighted 1103.9 kFragments/s 3502.5 kFragments/s Trigonometric test - vertex weighted 1018.8 kVertex/s 3091.7 kVertex/s Swapbuffer Speed 600 599

Enough with the synthetics - how much of an improvement does all of this yield in the actual GLBenchmark 2.0 game tests? Oh it's big.