Code drop from //branches/cupcake/...@124589
diff --git a/libpixelflinger/scanline.cpp b/libpixelflinger/scanline.cpp
index d24c988..75b668d 100644
--- a/libpixelflinger/scanline.cpp
+++ b/libpixelflinger/scanline.cpp
@@ -55,9 +55,11 @@
# define ANDROID_ARM_CODEGEN 0
#endif
-
#define DEBUG__CODEGEN_ONLY 0
+
+#define ASSEMBLY_SCRATCH_SIZE 2048
+
// ----------------------------------------------------------------------------
namespace android {
// ----------------------------------------------------------------------------
@@ -247,7 +249,8 @@
sp<Assembly> assembly = gCodeCache.lookup(key);
if (assembly == 0) {
// create a new assembly region
- sp<ScanlineAssembly> a = new ScanlineAssembly(c->state.needs, 1024);
+ sp<ScanlineAssembly> a = new ScanlineAssembly(c->state.needs,
+ ASSEMBLY_SCRATCH_SIZE);
// initialize our assembler
GGLAssembler assembler( new ARMAssembler(a) );
//GGLAssembler assembler(
@@ -676,6 +679,12 @@
Cf = ((((1<<st) - factor) * Cf) + Ct*Cc)>>st;
}
break;
+ case GGL_ADD:
+ if (st) {
+ rescale(Cf, sf, Ct, st);
+ Cf += Ct;
+ }
+ break;
}
}
}
@@ -1473,7 +1482,7 @@
needs.p = p;
needs.t[0] = t0;
needs.t[1] = t1;
- sp<ScanlineAssembly> a(new ScanlineAssembly(needs, 1024));
+ sp<ScanlineAssembly> a(new ScanlineAssembly(needs, ASSEMBLY_SCRATCH_SIZE));
GGLAssembler assembler( new ARMAssembler(a) );
int err = assembler.scanline(needs, (context_t*)c);
if (err != 0) {