hwc: mdpcomp: Add surfaceDamage calculation with SrcSplit.
Use surfaceDamage in calculating the final dirtyRect in
case of generating the ROI for SourceSplit
Change-Id: Ibe2347c49e07ec40a3369f6970371437b81874cd
diff --git a/msm8994/libhwcomposer/hwc_mdpcomp.cpp b/msm8994/libhwcomposer/hwc_mdpcomp.cpp
index 0ebebc3..44ec4c6 100644
--- a/msm8994/libhwcomposer/hwc_mdpcomp.cpp
+++ b/msm8994/libhwcomposer/hwc_mdpcomp.cpp
@@ -2684,22 +2684,13 @@
if(!isYuvBuffer((private_handle_t *)layer->handle) && layer->transform)
return;
- if ((mCachedFrame.hnd[index] != layer->handle) ||
+ if (layerUpdating(layer) ||
isYuvBuffer((private_handle_t *)layer->handle)) {
- hwc_rect_t dst = layer->displayFrame;
- hwc_rect_t updatingRect = dst;
-
-#ifdef QCOM_BSP
- if(!needsScaling(layer) && !layer->transform)
- {
- hwc_rect_t src = integerizeSourceCrop(layer->sourceCropf);
- int x_off = dst.left - src.left;
- int y_off = dst.top - src.top;
- updatingRect = moveRect(layer->dirtyRect, x_off, y_off);
+ hwc_rect_t dirtyRect = (struct hwc_rect){0, 0, 0, 0};
+ if (!needsScaling(layer) && !layer->transform) {
+ dirtyRect = calculateDirtyRect(layer, fullFrame);
}
-#endif
-
- roi = getUnion(roi, updatingRect);
+ roi = getUnion(roi, dirtyRect);
}
}