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

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

    Interesting. I originally picked S5K4E5 family as being the likely choice - as it's the BSI equivalent, and though that was what was inside until I decompiled/dug around inside the ducati-m3.bin file as noted in the review.

    You'll see numerous references to "S5K4E1G" and none for "S5K4E5" which is the BSI version. EG:

    "CSI.COMPLEIO¿F¿MSP.NEW_SENSOR¿S5K4E1GA¿F¿S5K6A1GX03¿MSP.NEW_LENS¿F¿VM149C¿MSP.NEW_CSICSI2A¿FCSI2B"

    It could very well be BSI since they've x-rayed it.

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

    Official Samsung site says SGS II has quad band 3G and Galaxy Nexus has penta-band 3G, so there's a difference in GSM connectivity:
    http://goo.gl/gvIWV
  • Stas - Thursday, January 19, 2012 - link

    I appreciate the thoroughness in this review, Anand.
    Interesting, however, how I find so many things about the software completely irrelevant to someone who just can't leave things vanilla. Browser performance and features, launcher scrolling, screenshots, on-screen keyboard, etc. None of those things are in their original Android form on my phone (SGS2). Some issues have been addressed by Samsung, some by XDA developers, some by myself. As a result, I believe I have the perfect phone on the market (for me). Reading every section of this article, I kept finding myself thinking, "Heh, my phone doesn't have that problem," or, "Mine does that even better," or, "would suck to have that phone instead of my Galaxy."
    I always thought advancement in tech = replacing devices sooner. However, after reading this review, I have no desire whatsoever to replace my current phone with the new flagship. I always get that feeling when I read a video card review, CPU review, SSD review, etc. But I feel like my phone lacks nothing, and I will stick with it for a long while. Customizing and tweaking software to your own taste, making it feel just right is the most important aspect of an electronic device that provides so much interaction. I guess that's why I almost feel handicapped on a stock Android phone or, especially, iPhone. The devices just feel so clunky and unrefined.
    Thank you, if nothing else, for helping me see a different perspective on things :)
  • Lucian Armasu - Thursday, January 19, 2012 - link

    1. Can you re-check and confirm if swiping tabs off in the task menu, actually KILLS the apps, or it just takes them off the list? Because I've heard before that it doesn't kill them.

    2. The battery tests, especially the Wi-Fi ones, were they done with 3G and LTE on?
  • silow675 - Thursday, January 19, 2012 - link

    "At 720p, which happens to be the GN's native resolution, the OMAP 4460 is a bit faster than Tegra 2 but not significantly so. The more important thing to keep in mind is just how much faster Tegra 3's GPU is by comparison"

    I don't understand this remark. The chart that's posted for the 720p offscreen renders don't have a Tegra 2 device. In the RightWare charts the Galaxy Nexus scores much more than "a bit faster" than the Tegra 2 devices. And to my knowledge no Tegra 2 smartphones are offered at native 720p resolution.

    I also checked the AT Bench database and couldn't find any Tegra 2 benchmarks to compare. Do you guys have some unposted numbers?
  • RobElk - Thursday, January 19, 2012 - link

    You guys do a great job. Love the attention to detail in your review. Thanks.
  • DrKlahn - Thursday, January 19, 2012 - link

    I found this comment interesting. I have had the phone since launch day (VZW) and have yet to notice any lag hitting the virtual buttons. Perhaps I am just not as sensitive to it or some other process on your test phone is affecting it. I have got the phone to lag doing some very intensive tasks on occasion, but it's very infrequent. My chief complaint has been the volume which I remedied with a free app (Volume+ with the +2 setting). Otherwise I give the phone very high marks. I have no real desire to root or tinker with it yet, the stock experience is excellent.
  • peokuk - Thursday, January 19, 2012 - link

    for the font comparison, why not 'the quick brown fox jumps over the lazy dog'? using cat and jumped leaves out the letters 'g' and 's'...
    http://en.wikipedia.org/wiki/The_quick_brown_fox_j...
  • DanSmith - Thursday, January 19, 2012 - link

    No one has actually said it yet so I will. Good review guys, in depth and informative as always.
    Thanks for your hard work.

    Dan
  • DanSmith - Thursday, January 19, 2012 - link

    Actually, someone already has! Seems the internet is not completely populated by haters. :)

Log in

Don't have an account? Sign up now