Donot compose layers if external is in pause state
* Donot compose external/virtual layer-list when
when external/virtual is in pause state.
* Marking the layers for GPU composition when external/virtual
is in pause state would update FB_TARGET layer which inturn would
affect partial mdpcomp after resume.
Change-Id: Id2806bd7156085c00158a31dff3c3dc4c2b61146
diff --git a/libhwcomposer/hwc.cpp b/libhwcomposer/hwc.cpp
index a805486..3e94d74 100644
--- a/libhwcomposer/hwc.cpp
+++ b/libhwcomposer/hwc.cpp
@@ -189,11 +189,14 @@
}
}
} else {
- // External Display is in Pause state.
- // ToDo:
- // Mark all application layers as OVERLAY so that
- // GPU will not compose. This is done for power
- // optimization
+ /* External Display is in Pause state.
+ * Mark all application layers as OVERLAY so that
+ * GPU will not compose.
+ */
+ for(size_t i = 0 ;i < (size_t)(list->numHwLayers - 1); i++) {
+ hwc_layer_1_t *layer = &list->hwLayers[i];
+ layer->compositionType = HWC_OVERLAY;
+ }
}
}
return 0;
@@ -227,11 +230,14 @@
}
}
} else {
- // Virtual Display is in Pause state.
- // ToDo:
- // Mark all application layers as OVERLAY so that
- // GPU will not compose. This is done for power
- // optimization
+ /* Virtual Display is in Pause state.
+ * Mark all application layers as OVERLAY so that
+ * GPU will not compose.
+ */
+ for(size_t i = 0 ;i < (size_t)(list->numHwLayers - 1); i++) {
+ hwc_layer_1_t *layer = &list->hwLayers[i];
+ layer->compositionType = HWC_OVERLAY;
+ }
}
}
return 0;