Merge "hwc: Handle alpha scaling in mdp3."
diff --git a/libhwcomposer/hwc_copybit.cpp b/libhwcomposer/hwc_copybit.cpp
index 68f168a..3297317 100644
--- a/libhwcomposer/hwc_copybit.cpp
+++ b/libhwcomposer/hwc_copybit.cpp
@@ -354,10 +354,18 @@
dx = (float)dst_w/(float)src_w;
dy = (float)dst_h/(float)src_h;
- if (dx > MAX_SCALE_FACTOR || dx < MIN_SCALE_FACTOR)
+ float scale_factor_max = MAX_SCALE_FACTOR;
+ float scale_factor_min = MIN_SCALE_FACTOR;
+
+ if (isAlphaPresent(layer)) {
+ scale_factor_max = MAX_SCALE_FACTOR/4;
+ scale_factor_min = MIN_SCALE_FACTOR*4;
+ }
+
+ if (dx > scale_factor_max || dx < scale_factor_min)
return false;
- if (dy > MAX_SCALE_FACTOR || dy < MIN_SCALE_FACTOR)
+ if (dy > scale_factor_max || dy < scale_factor_min)
return false;
}
}