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

  • JohnJackson - Wednesday, February 8, 2012 - link

    You mean the one where the devices were running the benchmarks at the respective device's NATIVE resolution? 960x640 has 60% more pixels than 800x480...

    http://www.anandtech.com/show/4064/glbenchmark-20-...
  • Subzero0000 - Thursday, January 19, 2012 - link

    Where do you get "lag" in iPad 2?

    I use it everyday and the only lag I found is when I slide to the spotlight screen, or browsing webpage (while rendering).
  • sonelone - Thursday, January 19, 2012 - link

    Seriously, where do you get lag on the iPad or iPhone? With the SGX543MP2 rendering nothing but a grid of icons, getting lag would be ridiculous.
  • augustofretes - Thursday, January 19, 2012 - link

    Pseudo power users, judging mobile operating systems based on their home screens since 2007.
  • audioman83 - Thursday, January 19, 2012 - link

    LOL agreed. So sad.
  • Owls - Thursday, January 19, 2012 - link

    blah blah blah I don't like my iphone/ipad being compared so let me make fun of that person for being objective.

    I know the gnex is not perfect but guess what, neither is your apple product. We all live with compromises and this is no different. However, I refused to be ripped off by apple AND be forced to use itunes.

    sorry mr apple user.
  • Subzero0000 - Friday, January 20, 2012 - link

    Firstly, I think you are over-reacting (so did augustofretes).

    See, I wouldn't complain if someone finds a few lag on Android, because I appreciate the fact that Android is running true-multitasking, with all the widgets and background tasks give us the flexibility that iOS can never dream of.

    But then, you cloud your judgment with hatred...

    For example, I use Windows 7 at home, Android for phone, iPad for everything else (reading, browsing, gaming, etc...).

    I use Google account to sync calendar+contact between Android and iPad.
    I buy books in Amazon, and read them through Kindle app on iPad.
    I upload my own mp3 to iPad through iTunes, no problem.
    Mobile games are better quality on iOS (the truth), so I am happy to buy in AppStore.

    There is nothing forcing you to use iTunes.

    and "ripped off"? I actually think iPad is cheap, as a outstanding CONSUMER product.

    So, calm down, it's just a product. And have a nice day :)
  • medi01 - Friday, January 20, 2012 - link

    Yeah, nothing is "forcing" you to use iTunes apart from the fact that many Apple's products won't even switch on for the first time without itunes.
  • Subzero0000 - Friday, January 20, 2012 - link

    Well, what is the matter with one-time activate with iTune?
    If you find that annoying, then how about the procedure to root/flash your Android, or jb your iOS.

    How on earth would a tech-savvy find it annoying/difficult for such a easy task (iTune) ???
    I am really confused.
    Do you ever forget about the brand-hate and not being stubborn for a second?

    btw, I remember I got my iPad activated at the store, their staff open the box and do it for me anyway. I could have done it by myself, but hey, it's "customer service".

    oh, and if you think iTune is crap, wait till you try Samsung's "equivalent" (KIES)...
  • medi01 - Saturday, January 21, 2012 - link

    Oh, now easily you've switched from "nobody is forcing you" to "what's the deal".

    It's not one time activate with most devices it's "one time activate and this PC is your only way to put stuff on your device, unless you are using yet to be closed internet way of doing it".

    @@@If you find that annoying, then how about the procedure to root/flash your Android, or jb your iOS.@@@

    Could you get a clue, before whining about stuff about which you have very little idea? The only reason I had to root android device, was bacause it was rather old OS with fonts that didn't contain glyphs I needed.

    And one thing you're completely missing, dear "I'm not an apple fanboi", YOU DON'T HAVE TO ROOT YOUR ANDROID DEVICE TO GET ACCESS TO IT. You don't have to root it to access it as a hard drive. Neither do you have to root it to install whatever you want on it.

    @@@oh, and if you think iTune is crap, wait till you try Samsung's "equivalent" (KIES).@@@
    I've never used KIES (even though I have a phone and a tablet by Samsung), so it's hard to compare them. But unlike apple "customers", android users have absolutely no need in using KIES.

Log in

Don't have an account? Sign up now