Most of us have noticed that these past few days have been buzzing with more and more features being released regarding the launch of Android 3.0 Honeycomb and what it will bring not only the terms of tablets, but what it can bring in terms of performance enhancements to existing platforms as well. A few days ago I took a quick look at Google’s latest addition to the Honeycomb list of improvements, something from which all devices will benefit from – Fragments API. This time around it’s time to look at another API (that’s Application Programming Interface) which will help increase the 3D capabilities of existing devices as well as upcoming devices in order to take full advantage of all the devices cores, may those be CPU cores or GPU cores.
This latest API for Honeycomb is named Renderscript, and R. Jason Sams, an Android engineer who specialized in graphics, performance tuning and software architecture has a pretty cool post on the Android Developers page in which he goes more in detail about this latest addition. The API is targeting high-performance 3D rendering and compute operations. The main goal of Renderscript is to bring a lower level, higher performance API to the developers. A good example of the uses of Renderscript, would be to point out the new YouTube and Books applications, as well as being the API of choice for the livewallpapers Honeycomb tablets will be coming with.
Despite the improvements the API is bringing, the main goal is not to replace the existing high-level rendering APIs but rather to pinpoint parts of the performance-critical code segments and improve them, something which current APIs cannot achieve. The main part of Renderscript which a lot of people were curious about was, what would the code be run on – the CPU(s) or the GPU(s). This however can be explained as the decision of using the GPU or the CPU will be done on the device when the application is run. A simple script will as such be run on the GPU, while more complex scripts will run on the CPU(s). The CPU will also be serving as a safety net of sorts, to ensure that scripts will always be run even if a suitable GPU or any other form of graphic acceleration is not available.
Some early examples of Renderscript graphics were the live wallpapers and 3D application launchers which shipped with Éclair, yet as time evolved, Honeycomb migrated from GL ES 1.1 to 2.0 as the renderer for Renderscript. This managed to add programmable shader support, 3D model loading and a more efficient allocation management. The largest change in all of this is actually the fact that Renderscript is now available for the general public.
This is another great example of how not only the gaming aspect of the Android platform will see improvements but the overall interface will be hit by major shifts. A lot of users were hoping that Android 2.3 Gingerbread would bring about the large interface changes which would have closed the gap between the iOS and Android OS in regards to the way the interface looks and works. This might just be the step some of us were waiting for in 2.3 but will finally be getting it with 3.0. Until next time, you can now sleep well knowing that your 3D scripts are run optimally (I know, not much of a comforting factor now ).1