Project Butter 2.0

If you didn't see this at Google I/O, further enhancements to the graphics work done under "Project Butter" for Jellybean is forthcoming in a "future release" of Android (the devs were coy about setting any kind of expectations as to the timeframe or version number of this "future release"):

http://www.youtube.com/watch?v=vQZFaec9NpA

Main points:

  • Re-ordering and merging of GPU commands into batches. In the example shown of drawing the stream in the G+ app, 88 drawing commands were reduced to 39 through merging. Performance was also improved as the commands were re-ordered and sent to the GPU in batches: the commands in a batch all involve the same GPU state (e.g. all text drawing commands), thereby reducing the context switching the GPU has to perform.
  • Multithreading in the rendering pipeline, making better use of CPUs and GPUs with multiple cores. Example they showed doing drop shadows and other effects on other threads while the main draw rendering is performed on the main thread.
  • Non-rectangular clipping support, which should mean better performance for irregularly-shaped clipping (they showed a heart-shape as an example) and less glitchy 3D animations.
  • Also better tools for developers to examine the graphically slow areas of their app.