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
POST A COMMENT

185 Comments

View All Comments

  • sjankis630 - Wednesday, January 25, 2012 - link

    I can comment that my Galaxy Nexus' black is as black as midnight to a blind man.
    The only time I see some grey type tones is when the website is colored that way.
    Reply
  • walkman - Sunday, January 22, 2012 - link

    That was a shocking detailed and informative review -- It's the sort of article that makes Anandtech my first choice for tech reviews.

    - The article mentioned new processors just around the corner. Was this referring to any processors other than Krait? I haven't heard any news about Krait since November PR -- Are we looking at April or June? And do we think anyone besides HTC will use Krait?
    Reply
  • Omid.M - Sunday, January 22, 2012 - link

    Processors around the corner:

    Krait
    Tegra3
    OMAP5
    Exynos 5250

    It's going to be a bloodbath for the next 12-18 months.

    If iPhone 5 uses the MDM9160 (?) modem with LTE, I'm jumping on that. Tired of tweaking battery life on my Thunderbolt. Not sure I want to do the same with a Galaxy Nexus LTE.

    And what's this I'm reading about connection issues / dropped calls on the VZW Nexus? Ridiculous.
    Reply
  • Rictorhell - Monday, January 23, 2012 - link

    I am a big fan of this site and I read the reviews and articles all of the time and I find them very informative and useful, but, I have a request.

    When a review is written, particularly about a certain smartphone or tablet, it is mentioned whether the device has an SD card slot and you always tend to differentiate between whether it is a “full-sized” SD slot or a “micro”SD slot. That is useful to know, but there are several actual types of SD cards available, each with a different maximum storage capacity, and you don't specify in your reviews which types of SD cards are actually supported by the device being reviewed and I think that is a bit of an oversight.

    To the best of my knowledge, standard SD cards only have a maximum capacity of up to 2gb, while SDHC cards can go up to as high as 32gb, and SDXC cards, while only available right now in sizes up to 128gb, are supposed to theoretically be able to be manufactured in sizes up to 2tb.

    There is a huge difference in size between 2gb, 32gb, and 128gb. Given that smartphones and tablets have substantial built in limits as far as storage capacity, I think it would be very helpful to know which type of SD card is supported by which device, if that is possible.

    If I read two reviews about two different Android tablets and both reviews mention that both cards have a full-size SD card slot, as a user with a lot of media files, I'm going to be interested to know if one of those tablets can support SDXC cards while the other one cannot.

    I consider that to be a major feature, to me, just as important as battery life. If you do reviews of tablets and smartphones, or even ultrabooks, and neglect to specify how much storage potential these devices have or do not have, you are making it very easy for the hardware manufacturers to simply put in second rate storage and format support, knowing that it will not be covered in reviews by sites like Anandech. Not only is this going to stunt the evolution of these devices but it's also going to mean less options for consumers.

    Anyway, thank you for your time.
    Reply
  • peevee - Tuesday, January 24, 2012 - link

    Anand, please include OS version number (and carrier when applies) in the charts for performance and battery life tests. They make huge difference, as browser speeds improve, they consume less CPU time and less energy when browsing.
    For example, the discrepancy between iPhone 4 and iPhone 4S looks outsized and probably is the result of testing iPhone 4 with iOS much older than the current version, probably not even 4.3, and 4S with iOS 5.
    Reply
  • skinien - Tuesday, January 24, 2012 - link

    What a review!!! I'm not in the market for a new hone right now, but when the time comes, I'll be looking here for a review on prospective phones. GREAT WRITE UP! Reply
  • sonicmerlin - Thursday, January 26, 2012 - link

    I'm sorry, but you're ignoring the fact that ICS STILL lags. If you load up a heavy site like theverge, try scrolling around while the site is loading. Your entire page stutters and freezes until everything is done loading. ICS also lags more as you load more apps onto your phone, just like all previous versions of Android. Also notice how all UI elements are flattened when pages are rendered. Try zooming in or out. The new page info appears all at once, rather than pop up individually as in iOS and WP7. This can result in lag on heavy sites.

    For whatever reason tech "nerds" don't seem to notice the very obvious fluidity issues. Yes once you've loaded up a site it's easy to pan around, but people don't sit there patiently waiting for websites to load. Nor do they appreciate the frequent microstutters due to garbage collection issues, or the massive standby battery drain issues that tons of Android phones experience. And even the basic phone UI itself still lags behind your finger, demonstrating an irritating rubberband affect.

    It's stupid. Android will never stop lagging until Google rewrites the OS to give the UI thread priority, instead of putting it at the same level as app priority.
    Reply
  • rupert3k - Friday, January 27, 2012 - link

    Learned loads from reading this, really impressed with how far Android has come.
    The stuttering when scrolling, zooming or browsing always annoyed me, stoked to learn ICS is fully accelerated.

    One wonders if we'll see any Motorola Nexus style devices once Google settles into their new ownership. Be nice to see a Motorola this nice!

    Hope we see high dot pitch Android devices to combat Retina, not happy with AMOLED at present it seems a bit yellowy & over saturated to me, surely LG or Samsung can also spec Retina style IPS or at least offer the choice between AMOLED & IPS 330dpi.

    Bring on the Quad high DPI Android & iOS tablets!!
    Reply
  • bruce3777a - Sunday, January 29, 2012 - link

    Hi,

    Please bear with me:)

    If a phone was upgraded from Gingerbread to ICS and It appears to be able to still work with the apps from many banks

    It seems like these apps were not compatable with tablets running honeycomb so it was necessary to just use the browser.

    If a tablet is upgraded from Honeycomb to ICS, or if a new tablet is purchased that has ICS would/should that automatically make it compatable, or is there still something that the banks would need to do to make it universal to both phones and tablets that use ICS. Thanks in advance for any insight.
    Reply
  • Lucian Armasu - Monday, January 30, 2012 - link

    I think I figured it out. I just saw this:

    http://score.nena.se/nenamark/view?version=2&d...

    And I remembered it's not the only time I see 1196x720 pixels being rendered in a benchmark. Anand, if you're reading this, could it be because the buttons are NOT rendered by the GPU, and instead are rendered by those Cortex-M3 2D cores? They would have to render much fewer pixels, but they are also much slower than the GPU, and also pretty old tech I think.
    Reply

Log in

Don't have an account? Sign up now