Ever since Google announced the Galaxy Nexus back in October, all Android fanboys and reviewers had only one doubt – Why did Google go with the OMAP4460 SoC on the Galaxy Nexus and why is it clocked at 1.2GHz instead of its optimal speed of 1.5GHz? While the CPU performance of the Galaxy Nexus is just fine, the GPU performance of the handset is at best…terrible! The PowerVR SGX540 GPU inside the handset is simply not capable enough to drive such a high resolution (720p) screen of the handset. I am still amazed, disappointed and shocked that Google went with such a weak GPU on the Galaxy Nexus.
To make matters worse, after the Nexus was launched, it was further revealed that the already weak GPU on the Galaxy Nexus – PowerVR SGX540 – is clocked at 308MHz, instead of its optimal 380Mhz. While an underclock of 72MHz might not seem much, increasing the GPU clock speed back to 380MHz does make a considerable performance improvement in benchmarks and games on the Galaxy Nexus.
Ever since I got a Galaxy Nexus last week, I have been searching the Internet like crazy trying to find out why Google went with the OMAP4460 SoC for the Galaxy Nexus, and why did they underclock the already weak GPU? While there is no clear answer to why Google chose the OMAP4460 as the launch platform for Android 4.0, I did find a reason as to why the GPU inside the GNex is running at 308MHz. Here is what one developer from Google, Colin Cross, had to say about the GPU clock speed of the Galaxy Nexus -:
Most GPU workloads on 4460 with a 720p screen are limited by the memory bandwidth, not the GPU computation ability (which is fairly linear with clock speed). With the GPU at 307 MHz, the core is at OPP100, the and the memory bus is at full speed. At 384 MHz, the core is at OPP_100_OV, which raises the core voltage (not counting SmartReflex) from 1.127V to 1.25V, causing a huge increase in power usage. Without the GPU, the core is almost always running at OPP100 when under load, because CPU OPP100 (700 MHz) requires core OPP100. That means scaling the GPU from 150MHz to 307MHz costs very little in terms of power. Nothing else in the chip requires core OPP100_OV, so scaling the GPU to 384MHz is a pure power hit for very little (or no) performance gain.
This does not means overclocking the PowerVR SGX540 GPU to 380MHz by using a custom kernel is not going to give you much performance improvement or is going to decrease the battery life considerably. All custom kernels come with tweaked voltages, along with increased GPU clocks so as to balance the increase in power consumption. Even though the GPU is bandwith limited, the increased GPU clock speed does bring about a ~12-14%% boost in the GPU performance of the handset. For an 18% improvement in clock speed, a ~14% improvement in GPU performance is definitely not bad. However, increasing the GPU clock speeds above 380MHz does not lead to a significant performance improvement.
Overclocking the GPU to 512MHz, which is the next clock speed level possible, represents a 25% increase in clock speed from 380MHz. Sadly, the performance improvement is less than 10% which when coupled with a huge increase in power consumption does not look so tempting.
At its stock clock speed, the Galaxy Nexus scores a disastrous 24fps in Nenamark 2, which jumps to 28fps when the clock speed is increased to 380MHz. At 512MHz, the scores jump to only 31fps which clearly shows that the GPU is now band with limited.