1. Are you ready for the Galaxy S20? Here is everything we know so far!

Why doesn't Android's GUI use GPU acceleration?

Discussion in 'Android Lounge' started by uf15, Dec 21, 2009.

  1. uf15

    uf15 Newbie
    Thread Starter

    The biggest turnoff I have had with Android is how choppy elements of the graphical user interface are. It really affects the snappiness of the device. These are things like the animation of pulling the app drawer out, or scrolling through a page. Even on the Droid scrolling through a webpage is choppy, laggy and slow.

    What I do know is that the iPhone takes advantage of the GPU and OpenGL to accelerate all these things. That is why all the animations and scrolling on the iPhone are silky smooth. What has always puzzled me is why they built Android to not take advantage of hardware that are in most of its phones. The CPU can only do so much, so it makes sense to have the GPU do what it's best at.

    I read something once about Skia, the 2D rendering engine for Android, only being able to use the CPU. But how far off, if ever, are we from seeing GPU integration into the actual GUI? I'm not talking about games, I am talking the OS itself.

    Any ideas?

  2. uf15

    uf15 Newbie
    Thread Starter

    That was much better than the Droids I have played with, likely attributed to a 1ghz CPU, but it still isn't as smooth and fluid as the transitions in iPhone.

    I just don't understand why Android wouldn't want to offload these things onto a GPU which is designed to do them brilliantly. Instead, they force the CPU to do it, which seems inefficient.
  3. darreno1

    darreno1 Android Enthusiast

    ^^There is a video on the web of Android 2.1 on a Droid and it's very smooth. It's not just the processor.

    Yes on the current 2.0 OS, the App tray isn't very smooth but there are other aspects of Android that are, like the scrolling in contacts, notes etc. Also the the fading in and out of the Apps is very smooth. I don't think it's accurate to say Android isn't using the GPU at all. Maybe a dev can chime in, but the home ++ homescreen replacement for example, is much smoother than the stock homescreen which proves it's just in the programming and can be easily remedied.

    Android 2.1 also proves that it's something that's easily fixable. Also in 2.0, while there is some choppiness, when launching and working in apps, the Droid is very quick so it really isn't a bother unless you look for it.

    Contrast this with webOS where the entire OS is just extremely laggy and slow in many places. WebOS cannot leverage the GPU (yet) while Android can.

    If 2.1 isn't using the GPU then it's some seriously slick programming to make that smooth.

    Here are some of the videos:
    Nexus One Animated Wallpapers on Droid with Android 2.1 | Redmond Pie

    Motorola Droid Hacked To Run Android 2.1, Faster - Motorola droid 2.1 - Gizmodo
  4. barry99705

    barry99705 Android Expert

    My droid has never been choppy. Runs just as smooth as my wife's iPhone, or my iPod touch.
  5. uf15

    uf15 Newbie
    Thread Starter

    My understanding is that Android has access to the GPU, however does not use it for the things we are discussing like scrolling or menu animations. That is entirely done by the CPU via the 2D Skia engine. It seems as though the Android programmers just decided not to take advantage of GPU acceleration. Now, I am not saying that with a fast enough CPU that it cannot be smooth and fast, but it takes a whole lot of horsepower to get anywhere close to the iPhone's level.

    WebOS is in the same boat. The Pre and Pixi have GPUs, but they are sitting dormant because there are no drivers and no hooks for WebOS's javascript and CSS to interface with it. So they are too relying solely on the CPU to animate menus, transitions and to scroll. The sad thing is that the non-compiled languages they use just cannot keep up with it as well as Android can, which makes it unusable.

    But still, if you are scrolling through a webpage or seeing a screen transition or pulling up the drawer in Android 2.0, all of that is being done by the CPU. That is why it often looks like it is running at 15fps, while similar things on the iPhone look like they are running at 60fps.

    I just don't understand why. It was probably easier, but using the GPU for things like this would make all Android devices much snappier and smoother.
  6. darreno1

    darreno1 Android Enthusiast

    ^^ Did you look at the videos?Those transitons are as smooth as can be. Whether or not the Gpu is being used is moot. Android 2.0 is just a stepping stone.
  7. Robfactory

    Robfactory Well-Known Member

    If you look at the previous processors used, none of them had an accelerated GPU. The Arm 528mhz processor would have been super laggy if it used the required graphics under its GPU. However, Droid, which has a better CPU and GPU is capable to dividing both processes and render graphics through its GPU at an acceptable performance.
  8. uf15

    uf15 Newbie
    Thread Starter

    That still begs the question, why burden the CPU with that task when you have a GPU sitting there that can do it better? Which also allows the CPU to use more of its resources on other tasks.
  9. miamicanes

    miamicanes Newbie

    From what I've heard, the fault lies mostly with HTC, encouraged by wholesale indifference by the carriers. Here's the story I was told:

    * Qualcomm makes the core chipset used by most HTC phones, and most Android phones were built by HTC until VERY recently. Thus, the things that got the most attention during Android's first year and a half of commercial availability were things directly supported by HTC phones.

    * The price charged by Qualcomm for its chipset varies, depending upon what features the handset manufacturer chooses to license from them. Put another way, every Qualcomm chip in a given family has the silicon resources to do everything... but manufacturers are only allowed to use the features they pay Qualcomm for the right to use.

    * Because the carriers don't care, and the carriers are HTC's real customers, HTC didn't care about GPU support, either. It saved a few cents per phone, and washed its hands of GPU support to boot.

    * Making matters worse, Qualcomm only makes its chipset documentation available under NDA (at least, the parts dealing with "premium" capabilities), and only made it available to licensees (of which there were very, very few). Ergo, the documentation has been VERY hard to come by, and less likely to be leaked by a public-minded HTC employee for the good of humanity.

    Put another way, there probably isn't a thing Qualcomm can do to stop the folks at xda-developers.com from releasing guerrilla video drivers for HTC Android phones that take advantage of acceleration if they can figure out how it works, but you'll never see a phone come out of the box new with GPU acceleration unless HTC officially licenses the capability from Qualcomm. Nor will you see Google making it easy to do an end-run around the official release to graft it on, because then Qualcomm would sue THEM.
  10. firefly123

    firefly123 Lurker

    "less likely to be leaked by a public-minded HTC employee for the good of humanity." Give me a break. the good of humanity??? This is the kind of naive bull%&*$ that pretends to be legitimate discourse on so many of these forums. Get real. What about the fact that this company has the legitimate right to make money in a market just like anybody else.
  11. vbetts

    vbetts Android Enthusiast

    Most likely to save power, the app drawer or other things are put on the CPU instead of the CPU and GPU, as that would take power.
    anomaly likes this.
  12. Nuukeer

    Nuukeer Newbie

    Wrong. The GPU is designed to handle graphics. It is therefore inherently better than a CPU at doing precisely that. This means that it takes less power to do the same work compared to a general purpose CPU.

Share This Page