Merge "hwcomposer: Add adb property to disable Mixed Mode"
diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index 4a35336..720b1c6 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -37,6 +37,7 @@
bool MDPComp::sIdleFallBack = false;
bool MDPComp::sDebugLogs = false;
bool MDPComp::sEnabled = false;
+bool MDPComp::sEnableMixedMode = true;
int MDPComp::sMaxPipesPerMixer = MAX_PIPES_PER_MIXER;
MDPComp* MDPComp::getObject(const int& width, int dpy) {
@@ -97,6 +98,13 @@
}
}
+ sEnableMixedMode = true;
+ if((property_get("debug.mdpcomp.mixedmode.disable", property, NULL) > 0) &&
+ (!strncmp(property, "1", PROPERTY_VALUE_MAX ) ||
+ (!strncasecmp(property,"true", PROPERTY_VALUE_MAX )))) {
+ sEnableMixedMode = false;
+ }
+
sDebugLogs = false;
if(property_get("debug.mdpcomp.logs", property, NULL) > 0) {
if(atoi(property) != 0)
@@ -352,8 +360,8 @@
}
bool MDPComp::isFrameDoable(hwc_context_t *ctx) {
- int numAppLayers = ctx->listStats[mDpy].numAppLayers;
bool ret = true;
+ const int numAppLayers = ctx->listStats[mDpy].numAppLayers;
if(!isEnabled()) {
ALOGD_IF(isDebug(),"%s: MDP Comp. not enabled.", __FUNCTION__);
@@ -428,7 +436,7 @@
bool ret = false;
if(fullMDPComp(ctx, list)) {
ret = true;
- } else if (partialMDPComp(ctx, list)) {
+ } else if(partialMDPComp(ctx, list)) {
ret = true;
}
return ret;
@@ -462,6 +470,12 @@
bool MDPComp::partialMDPComp(hwc_context_t *ctx, hwc_display_contents_1_t* list)
{
int numAppLayers = ctx->listStats[mDpy].numAppLayers;
+
+ if(!sEnableMixedMode) {
+ //Mixed mode is disabled. No need to even try caching.
+ return false;
+ }
+
//Setup mCurrentFrame
mCurrentFrame.reset(numAppLayers);
updateLayerCache(ctx, list);
diff --git a/libhwcomposer/hwc_mdpcomp.h b/libhwcomposer/hwc_mdpcomp.h
index e2800d2..6e04918 100644
--- a/libhwcomposer/hwc_mdpcomp.h
+++ b/libhwcomposer/hwc_mdpcomp.h
@@ -166,6 +166,7 @@
int mDpy;
static bool sEnabled;
+ static bool sEnableMixedMode;
static bool sDebugLogs;
static bool sIdleFallBack;
static int sMaxPipesPerMixer;