Merge "hwc: Implement idle-fallback for videos"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
07be7a4e80
@@ -235,7 +235,6 @@ static int hwc_prepare(hwc_composer_device_1 *dev, size_t numDisplays,
|
|||||||
|
|
||||||
ctx->mOverlay->configDone();
|
ctx->mOverlay->configDone();
|
||||||
ctx->mRotMgr->configDone();
|
ctx->mRotMgr->configDone();
|
||||||
MDPComp::resetIdleFallBack();
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -498,6 +497,7 @@ static int hwc_set(hwc_composer_device_1 *dev,
|
|||||||
// This is only indicative of how many times SurfaceFlinger posts
|
// This is only indicative of how many times SurfaceFlinger posts
|
||||||
// frames to the display.
|
// frames to the display.
|
||||||
CALC_FPS();
|
CALC_FPS();
|
||||||
|
MDPComp::resetIdleFallBack();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -366,11 +366,7 @@ bool MDPComp::isFrameDoable(hwc_context_t *ctx) {
|
|||||||
ctx->isPaddingRound = false;
|
ctx->isPaddingRound = false;
|
||||||
ALOGD_IF(isDebug(), "%s: padding round",__FUNCTION__);
|
ALOGD_IF(isDebug(), "%s: padding round",__FUNCTION__);
|
||||||
ret = false;
|
ret = false;
|
||||||
} else if(sIdleFallBack) {
|
|
||||||
ALOGD_IF(isDebug(), "%s: idle fallback",__FUNCTION__);
|
|
||||||
ret = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -381,6 +377,11 @@ bool MDPComp::isFullFrameDoable(hwc_context_t *ctx,
|
|||||||
|
|
||||||
const int numAppLayers = ctx->listStats[mDpy].numAppLayers;
|
const int numAppLayers = ctx->listStats[mDpy].numAppLayers;
|
||||||
|
|
||||||
|
if(sIdleFallBack) {
|
||||||
|
ALOGD_IF(isDebug(), "%s: Idle fallback dpy %d",__FUNCTION__, mDpy);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if(mDpy > HWC_DISPLAY_PRIMARY){
|
if(mDpy > HWC_DISPLAY_PRIMARY){
|
||||||
ALOGD_IF(isDebug(), "%s: Cannot support External display(s)",
|
ALOGD_IF(isDebug(), "%s: Cannot support External display(s)",
|
||||||
__FUNCTION__);
|
__FUNCTION__);
|
||||||
@@ -856,7 +857,7 @@ bool MDPCompLowRes::draw(hwc_context_t *ctx, hwc_display_contents_1_t* list) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* reset Invalidator */
|
/* reset Invalidator */
|
||||||
if(idleInvalidator && mCurrentFrame.mdpCount)
|
if(idleInvalidator && !sIdleFallBack && mCurrentFrame.mdpCount)
|
||||||
idleInvalidator->markForSleep();
|
idleInvalidator->markForSleep();
|
||||||
|
|
||||||
overlay::Overlay& ov = *ctx->mOverlay;
|
overlay::Overlay& ov = *ctx->mOverlay;
|
||||||
@@ -1024,7 +1025,7 @@ bool MDPCompHighRes::draw(hwc_context_t *ctx, hwc_display_contents_1_t* list) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* reset Invalidator */
|
/* reset Invalidator */
|
||||||
if(idleInvalidator && mCurrentFrame.mdpCount)
|
if(idleInvalidator && !sIdleFallBack && mCurrentFrame.mdpCount)
|
||||||
idleInvalidator->markForSleep();
|
idleInvalidator->markForSleep();
|
||||||
|
|
||||||
overlay::Overlay& ov = *ctx->mOverlay;
|
overlay::Overlay& ov = *ctx->mOverlay;
|
||||||
|
|||||||
Reference in New Issue
Block a user