ICS has a feature for application to use OpenGL for 2D rendering and also defines a new HAL module "hwcomposer".
To run ICS on software OpenGL one has to disable the usage of OpenGL for 2D rendering and enable the software implementation of hwcomposer.
Here is the change to disable usage of OpenGL for rendering. http://review.android.git.linaro.org/#change,930
In this change,we force isHighEndGfx(which decides on usage of OpenGL for rendering if device has more than 512MB ram or its a large screen device) in core/java/android/app/ActivityManager.java to return false and hence wallpaper creation then uses Canvas(skia). The other change is in core/java/android/view/HardwareRenderer.java to set sRendererDisabled to true(by setting it to true we disable usage of OpenGL for rendering). This variable is available to the apps to choose between software rendering and OpenGL based rendering.
The hwcomposer.default module needs to be added to PRODUCT_PACKAGES list to have it build in the system image.
This change is not mandatory,but one may also want to apply the change: http://review.android.git.linaro.org/#change,931
This diables the "android" text being displayed on the screen. It was observed that the screen was flickering without this patch at 1080P resolution on panda.
Platform/Android/ICSwithSoftwareGL (last modified 2013-08-12 07:38:27)