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

  • jamyryals - Thursday, January 19, 2012 - link

    I liked this review very much. Do a video wrap up of the CES experience!
  • HangFire - Thursday, January 19, 2012 - link

    Anand,

    Are you using 2.2 era data for Thunderbolt battery life in the graph, or are you using modern Gingerbread data? The Thunderbolt has come a long way in managing battery life since introduction.

    HF
  • Brian Klug - Thursday, January 19, 2012 - link

    HF,

    Yeah, we're using the initial launch performance of the HTC Thunderbolt here. Unfortunately HTC wanted that phone back, so we can't test with the newer updates. This is one thing we're working on changing this year.

    -Brian
  • lewchenko74 - Thursday, January 19, 2012 - link

    I moved from an iphone 4 to the Galaxy Nexus... and there are issues that are not listed in this review.
    My only previous Android phone was a HTC Hero, which I rooted to 2.1 after no carrier support (Orange in the UK suck). Im happy with ICS in general.. but the phone itself has 2 really annoying major flaws which have happened to me on many occasion ...

    1. The random turn off problem.

    2. The random mic turning off mid call problem.

    Both are discussed quite a bit on sites like androidcentral.com and xda-developers.com forums, and seem to be happening to MANY (see the forum pages yourself) people, whether you have a GSM version, US phone on all versions of ICS. Swapping out hardware for a different phone is not solving the problems, and whilst infrequent for me , they happen to other people far more. (and not at all to some people..)

    In other words... Either ICS has a couple of critical bugs, or the hardware is at fault (or the firmware)..

    Both issues are apparently acknowledged by google as well.... yet seem to be getting little to no publicity. BGR.com recently reported the random turn off problem with the Nexus.

    So well done on the thorough review, but I wish somebody had warned me about these issues.

    I dont regret switching from the iphone 4 (screen was too small, and the lack of customisation was frustrating.. and the 4s was such a major dissapointment)... the Galaxy Nexus is a phone with serious problems (hopefuly ones that can be resolved with updates).

    Links to the forum pages of the issues :

    http://code.google.com/p/android/issues/detail?id=...
    http://forum.xda-developers.com/showthread.php?t=1...
    http://forum.xda-developers.com/showthread.php?t=1...
    http://forums.androidcentral.com/samsung-galaxy-ne...
  • B3an - Thursday, January 19, 2012 - link

    These both seem like a very common issue. Pretty serious problems too, not exactly something small. Disappointing to see no mention of this in the article.
  • anandtech pirate - Thursday, January 19, 2012 - link

    really? you guys, a tech site, uploaded a 480p quality video in 2012? sigh....
  • tipoo - Friday, January 20, 2012 - link

    Ah yes, if I can't see every follicle in his beard the review loses all its informativeness! lol
  • Nevod - Friday, January 20, 2012 - link

    Very weird battery life measurements.
    Judging by Wi-Fi hotspot and Talk time, Wi-Fi and cellular basebands are comparable in efficiency to other modern devices. Advantage over SGSII seems to be proportional to battery.
    Cellular web browsing time is quite good. Yet so low Wi-Fi browsing time - looks like it goes into some "hunger mode", like not caching anything when on Wi-Fi.

    Also, there is an option in ICS browser to invert colors, switches black and white , probably to extend battery life on OLED screens, as, well, sites usually have white backgrounds and that's not very nice to battery. Would be interesting to see tests of battery performance on inverted colors.
  • Bytales - Friday, January 20, 2012 - link

    Please Anandtech, if you have the posibillity, make a review of Galaxy Note
  • Artifex28 - Friday, January 20, 2012 - link

    You should use some curtains to kill the early reflections from concrete walls. :)

Log in

Don't have an account? Sign up now