Merge "Revert "hwc: Do not re-program H/W, if the frame geometry has not changed""
diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index 0e65234..154fb4e 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -249,48 +249,6 @@
}
}
-static bool optimizePrepare(hwc_context_t *ctx, int numDisplays,
- hwc_display_contents_1_t** displays) {
-
- /* Do not re-program H/W, if frame geometry has not changed.
- * But honor these exceptions:
- * 1. Padding round
- * 2. Idle fallback
- * 3. Overlay is not configured
- * 4. External/Virtual display is in Configure state
- * 5. External/Virtual is Paused OR not connected/active
- * 6. Non-Overlay device
- */
-
- if (ctx->isPaddingRound || MDPComp::isIdleFallback() ||
- !ctx->mOverlay->isConfigured() || isSecondaryConfiguring(ctx) ||
- ctx->mMDP.version < qdutils::MDP_V4_0) {
- return false;
- }
-
- bool isOptimized = false;
- for (uint32_t i = 0; i < numDisplays; i++) {
- hwc_display_contents_1_t *list = displays[i];
-
- if (list) {
- if (list->flags & HWC_GEOMETRY_CHANGED) {
- return false;
- }
- int dpy = getDpyforExternalDisplay(ctx, i);
- if (dpy && (ctx->dpyAttr[dpy].isPause ||
- !ctx->dpyAttr[dpy].connected ||
- !ctx->dpyAttr[dpy].isActive)) {
- return false;
- }
- // Set layer composition type as per last frame
- ctx->mMDPComp[dpy]->setMDPCompLayerFlags(ctx, list);
- isOptimized = true;
- }
- }
-
- return isOptimized;
-}
-
static int hwc_prepare_primary(hwc_composer_device_1 *dev,
hwc_display_contents_1_t *list) {
ATRACE_CALL();
@@ -377,12 +335,6 @@
setPaddingRound(ctx,numDisplays,displays);
setDMAState(ctx,numDisplays,displays);
setNumActiveDisplays(ctx,numDisplays,displays);
-
- if (optimizePrepare(ctx, numDisplays, displays)) {
- // Do not re-program H/W, if it is not needed
- return ret;
- }
-
reset(ctx, (int)numDisplays, displays);
ctx->mOverlay->configBegin();
diff --git a/libhwcomposer/hwc_mdpcomp.h b/libhwcomposer/hwc_mdpcomp.h
index 7d4214a..8186fff 100644
--- a/libhwcomposer/hwc_mdpcomp.h
+++ b/libhwcomposer/hwc_mdpcomp.h
@@ -54,9 +54,6 @@
static void resetIdleFallBack() { sIdleFallBack = false; }
static void reset() { sHandleTimeout = false; };
static bool isIdleFallback() { return sIdleFallBack; }
- /* set/reset flags for MDPComp */
- void setMDPCompLayerFlags(hwc_context_t *ctx,
- hwc_display_contents_1_t* list);
protected:
enum { MAX_SEC_LAYERS = 1 }; //TODO add property support
@@ -145,6 +142,9 @@
/* configures 4kx2k yuv layer*/
virtual int configure4k2kYuv(hwc_context_t *ctx, hwc_layer_1_t *layer,
PipeLayerPair& PipeLayerPair) = 0;
+ /* set/reset flags for MDPComp */
+ void setMDPCompLayerFlags(hwc_context_t *ctx,
+ hwc_display_contents_1_t* list);
void setRedraw(hwc_context_t *ctx,
hwc_display_contents_1_t* list);
/* checks for conditions where mdpcomp is not possible */
diff --git a/liboverlay/overlay.h b/liboverlay/overlay.h
index 17c75e8..455f547 100644
--- a/liboverlay/overlay.h
+++ b/liboverlay/overlay.h
@@ -140,8 +140,6 @@
void clear(int dpy);
/* Validate the set of pipes for a display and set them in driver */
bool validateAndSet(const int& dpy, const int& fbFd);
- /* Returns true if PipeBook has been configured, false otherwise */
- bool isConfigured();
/* Closes open pipes, called during startup */
static int initOverlay();
@@ -206,7 +204,6 @@
static void resetAllocation(int index);
static bool isAllocated(int index);
static bool isNotAllocated(int index);
- static bool isConfigured();
static utils::eMdpPipeType getPipeType(utils::eDest dest);
static const char* getDestStr(utils::eDest dest);
@@ -409,14 +406,6 @@
return "Invalid";
}
-inline bool Overlay::PipeBook::isConfigured() {
- return (sAllocatedBitmap != 0);
-}
-
-inline bool Overlay::isConfigured() {
- return PipeBook::isConfigured();
-}
-
}; // overlay
#endif // OVERLAY_H