OS-Wide OpenGL ES Rendering

Although smartphone and tablets still lag behind the technology we have in modern day PCs by several years, their evolution is a highly accelerated version of what we saw in the PC industry. It took decades to go from the first GUIs to the GPU composited and accelerated UIs we have on the desktop today. Android has made a very similar transition in just three years.

Prior to Honeycomb, the majority of screen drawing in Android was done using its skia libraries. These libraries were almost exclusively CPU based and did very little work on the GPU. Over time Google rewrote key elements of Android to use new OpenGL ES rendering paths instead of skia for screen drawing. We saw the first major transition in Gingerbread where parts of the OS became GPU accelerated, but things like the browser were still being rendered to the screen using skia. Honeycomb was a significant step towards GPU accelerated drawing, and ICS all but completes the transition. The other component is the drawing model, which is completely revamped in 3.x and above. 


From Romain Guy's Android Accelerated Rendering Google I/O 2011 Presentation

Honeycomb based tablets were significantly smoother than Gingerbread devices but even they showed some UI performance issues depending on what you asked of them. We later found out that this was a Tegra 2 limitation, something that would surely contribute to NVIDIA not being chosen as the lead SoC partner for ICS.

Also from Romain Guy's Android Accelerated Rendering Google I/O 2011 Presentation

With Ice Cream Sandwich, the OS, browser and all first party apps are OpenGL ES accelerated. The result is absolutely noticeable. App launches, scrolling and window transitions are all buttery smooth. Web browsing is unbelievably smooth and easily comparable to iOS and Windows Phone at this point.

Third party apps have to opt-into the OpenGL ES rendering path, which will likely require an update for those apps that haven't already done so. Google also provides the handy option of forcing all apps to use GPU accelerated apps and ignoring the opt-in (hardwareAccelerated="true" from the AndroidManifest.xml file). The obvious downside is not all third party apps will work gracefully with hardware acceleration enabled, though most do right now. The Southwest Airlines app, for example, will crash as soon as you try to check into a flight if you force GPU accelerated drawing, and Speedtest.net shows a blur for its line graph of throughput during the test. Google has outlined the draw operations that are unsupported in 3.x and 4.x already, which thankfully aren't many. 

 

While it would be nice for Google to allow GPU acceleration settings on a per application basis, the truth of the matter is that many of them work just fine. Those that don't work are likely a simple update away from getting on board, otherwise they risk obsolesce as more platforms get ICS in the future.

If the sluggish UI held you back from Android in the past, ICS almost completely addresses the issue. I say almost completely because there are still some minor hiccups and a couple of more reasonably sized problems with the OS' responsiveness.


Task Switcher with CPU use overlay (new in ICS) enabled

The biggest issue for me is the delay when operating any of the ICS buttons: back, home or the task switcher. While tapping a folder on any of the home screens results in an instantaneous display of its contents, hitting any of the three ICS buttons just isn't as responsive. There's a noticeable delay between when you hit the home button and when you actually appear back at the home screen. It's a delay that's, at least in my opinion, a bit too long. More frustrating is the delay in bringing up the list of recently used apps. It's less than two seconds but it should be in the milliseconds.

I monitored CPU usage while bringing up the task switcher and saw a small spike in CPU usage (~15%) and an associated increase in clock frequency, but nothing significant enough to lead me to believe we're CPU bound here. If anything I wonder if this is a GPU performance limitation similar to what we saw with Tegra 2 and the app launcher on Honeycomb. Given the incredible resolution of the Galaxy Nexus' display and the fact that we're still dealing with a 307MHz PowerVR SGX 540, it's quite possible that the platform just needs a faster GPU. I'm curious to see how well Tegra 3 will do here.

 

The Android vs. iOS Debate The UI: Holo Evolved
Comments Locked

185 Comments

View All Comments

  • roedtogsvart - Wednesday, January 18, 2012 - link

    Finally!
  • prophet001 - Wednesday, January 18, 2012 - link

    Just had one of this hit my desk today :D very nice phone.
  • Owls - Thursday, January 19, 2012 - link

    No offense but I'm kind of pissed after reading this article with what amounts to a masturbatory article about the iphone 4s.

    For example on an ipad 2 and iphone 4s there is plenty of lag here and there using the UI on par with gingerbread. On ICS? It's pratically nonexistent.

    The camera? The only issue I found was that on Auto the shots didn't always come out great. Some manual adjustments fixed that and after comparing the shots to my dad's iphone 4s there's virtually no difference.

    I pretty much stopped reading after the camera section.
  • michael2k - Thursday, January 19, 2012 - link

    What kind of lag are you talking about? The A5 SoC is one of the most powerful out there and it's already been noted in several reviews how the older A4 SoC plus iOS 4 and 5 outperformed Gingerbread. You're saying the lag on ICS is somehow better than an A5 plus iOS 5 by saying the A5 + iOS 5 is as laggy as a CPU bound unaccelerated Android 2.3?
  • medi01 - Friday, January 20, 2012 - link

    Why, do you think, anand is using 720p "off-screen" in benchmarks, why not try it directly on screen?

    PS
    Oh, and why "black levels" aren't present on screen comparison? And why iphones dissapear from charts where they are wtfpwned by other phones?

    Sigh. Disgusting.
  • michael2k - Monday, January 23, 2012 - link

    All the phones and tablets would go up in number if they used native resolution, but then you can't actually compare the HW because each would be constrained by different resolutions. By using 720p offscreen you get to judge all the HW on the same scale.

    Also, Anand has definitely reported black levels:
    http://www.anandtech.com/Show/Index/4215?cPage=4&a...

    I don't know of any places where the iPhone disappear so much as the iPhone doesn't run the app. You'll notice that the rankings appear congruent; 4S followed by S2 with the Nexus and 4 on the bottom. Nothing changes, except that certain apps aren't available for the iPhone. Rightware Basemark is an Android app, silly.
  • medi01 - Wednesday, January 25, 2012 - link

    And "actual HW number" tells you what? That GPU X is faster than GPU Y? Instead of saying "phone X would render faster than phone Y"? How is first more appropriate mesurement than the latter?

    @Also, Anand has definitely reported black levels:@
    Are you kidding me? Where is vs amoled comparison in your link? How is it related to the article in discussion?

    Not only do they skip "black levels", they somehow manage to make a picture of AMOLED screen where BLACK looks GREY. Wow, great job misleading readers.
  • michael2k - Wednesday, January 25, 2012 - link

    Yes, GPU X is faster than GPU Y is a perfectly valid comparison. You would have to ask Anand why he thought comparing GPUs was a valid benchmark, but given the long track record of how responsive the iPhone has been compared to Android, I don't see how that anything else is relevant. The fact that offscreen performance favors the iPhone 4S doesn't change that it doesn't favor the iPhone 4!

    Also, why would he compare to amoled when in fact there are no amoled tablets to compare to?

    You're a baseless and pointless critic.
  • doobydoo - Thursday, January 19, 2012 - link

    There is no lag at all on the iPad 2 or the iPhone 4S, what are you talking about?

    I think you're more pissed off that the Nexus came with an average camera and a 2-year-old GPU.
  • Lucian Armasu - Monday, January 30, 2012 - link

    Well, iPhone 4 came with a 2 year old GPU, too in 2010, and much lower FPS than the competition, if you remember those GPU charts, where the iPhone 4 was the last at the bottom. Not too many people seemed to care about it.

Log in

Don't have an account? Sign up now