hwc: Reset ROI and avoid dirtyRect for video case
Reset ROI in when we are unable to proceed with full MDP comp.
Do not use dirtyRect for video use-cases to address some
corner cases
Change-Id: Id1ea6c1515f4441f0f35c0d08828e9c361bcbc86
diff --git a/libhwcomposer/hwc_mdpcomp.cpp b/libhwcomposer/hwc_mdpcomp.cpp
index d2962a3..4312dec 100644
--- a/libhwcomposer/hwc_mdpcomp.cpp
+++ b/libhwcomposer/hwc_mdpcomp.cpp
@@ -217,6 +217,9 @@
mCurrentFrame.reset(numLayers);
ctx->mOverlay->clear(mDpy);
ctx->mLayerRotMap[mDpy]->clear();
+ resetROI(ctx, mDpy);
+ memset(&mCurrentFrame.drop, 0, sizeof(mCurrentFrame.drop));
+ mCurrentFrame.dropCount = 0;
}
void MDPComp::reset() {
@@ -593,7 +596,8 @@
hwc_rect_t updatingRect = dst;
#ifdef QCOM_BSP
- if(!needsScaling(layer) && !layer->transform)
+ if(!needsScaling(layer) && !layer->transform &&
+ (!isYuvBuffer((private_handle_t *)layer->handle)))
{
hwc_rect_t src = integerizeSourceCrop(layer->sourceCropf);
int x_off = dst.left - src.left;