hwc: Use dirtyRect details in solid fill
No need to clear a non updating region in case of swapRect.
Use dirtyRect value of updating layer to achieve this.
Before using dirtyRect value map it to respective displayFrame,
as dirtyRect is with respect to sourceCrop.
Change-Id: Ie5782a039f7075396e30405070f12ce2443c0a82
diff --git a/libhwcomposer/hwc_copybit.cpp b/libhwcomposer/hwc_copybit.cpp
index ee5b3b7..ca631b2 100644
--- a/libhwcomposer/hwc_copybit.cpp
+++ b/libhwcomposer/hwc_copybit.cpp
@@ -534,20 +534,9 @@
mDirtyLayerIndex = checkDirtyRect(ctx, list, dpy);
hwc_rect_t clearRegion = {0,0,0,0};
- if (CBUtils::getuiClearRegion(list, clearRegion, layerProp)){
- if (mDirtyLayerIndex != -1){
- hwc_layer_1_t *layer = &list->hwLayers[mDirtyLayerIndex];
-#ifdef QCOM_BSP
- hwc_rect_t result = getIntersection(layer->dirtyRect,clearRegion);
- if(isValidRect(result))
- clear(renderBuffer,result);
-#else
- clear(renderBuffer,clearRegion);
-#endif
- } else {
+ if (CBUtils::getuiClearRegion(list, clearRegion, layerProp,
+ mDirtyLayerIndex))
clear(renderBuffer, clearRegion);
- }
- }
// numAppLayers-1, as we iterate from 0th layer index with HWC_COPYBIT flag
for (int i = 0; i <= (ctx->listStats[dpy].numAppLayers-1); i++) {
if(!(layerProp[i].mFlags & HWC_COPYBIT)) {