use 1/16 the size (20KB) for the dim texture in the copybit/msm case
diff --git a/libs/surfaceflinger/LayerDim.cpp b/libs/surfaceflinger/LayerDim.cpp
index 5cb883c..4114a42 100644
--- a/libs/surfaceflinger/LayerDim.cpp
+++ b/libs/surfaceflinger/LayerDim.cpp
@@ -63,6 +63,12 @@
* This burns a full-screen worth of graphic memory.
*/
+ // copybit supports 4x scaling, so we only need to allocate 1/16 of the
+ // buffer.
+ // FIXME: we have to add 1px because the mdp fails
+ w = w/4 + 1;
+ h = h/4 + 1;
+
const DisplayHardware& hw(flinger->graphicPlane(0).displayHardware());
uint32_t flags = hw.getFlags();
@@ -93,7 +99,7 @@
// initialize the texture with zeros
GGLSurface t;
buffer->lock(&t, GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_OFTEN);
- memset(t.data, 0, t.width * t.stride * 2);
+ memset(t.data, 0, t.stride * t.height * 2);
buffer->unlock();
sUseTexture = true;
}