summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRamakant Singh <ramaka@codeaurora.org>2014-12-08 17:09:31 +0530
committerSteve Kondik <steve@cyngn.com>2015-05-12 08:05:00 -0700
commita25137dfa23996449e3c5156455c898749a08a40 (patch)
treedefbb1a73598b93421cb8baa6d904065e2df439d
parent4d0417d2300efdbce801b13d5aaf3b23481bf18c (diff)
downloadhardware_qcom_display-stable/cm-12.1-caf-8974-YOG3C.tar.gz
hardware_qcom_display-stable/cm-12.1-caf-8974-YOG3C.tar.bz2
hardware_qcom_display-stable/cm-12.1-caf-8974-YOG3C.zip
hwc: Add check for dirtyRect clear call.stable/cm-12.1-caf-8974-YOG3C
We should call clear in dirtyRect only if its a valid region to clear. Change-Id: If627170e9f4893fe13a85a9929511858132d5405
-rw-r--r--libhwcomposer/hwc_copybit.cpp18
1 files changed, 10 insertions, 8 deletions
diff --git a/libhwcomposer/hwc_copybit.cpp b/libhwcomposer/hwc_copybit.cpp
index 3cbe892d0..b23d886f3 100644
--- a/libhwcomposer/hwc_copybit.cpp
+++ b/libhwcomposer/hwc_copybit.cpp
@@ -515,19 +515,21 @@ bool CopyBit::draw(hwc_context_t *ctx, hwc_display_contents_1_t *list,
}
mDirtyLayerIndex = checkDirtyRect(ctx, list, dpy);
- if( mDirtyLayerIndex != -1){
- hwc_layer_1_t *layer = &list->hwLayers[mDirtyLayerIndex];
+ 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
- clear(renderBuffer,layer->dirtyRect);
+ hwc_rect_t result = getIntersection(layer->dirtyRect,clearRegion);
+ if(isValidRect(result))
+ clear(renderBuffer,result);
#else
- clear(renderBuffer,layer->displayFrame);
+ clear(renderBuffer,clearRegion);
#endif
- } else {
- hwc_rect_t clearRegion = {0,0,0,0};
- if(CBUtils::getuiClearRegion(list, clearRegion, layerProp))
+ } else {
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++) {
hwc_layer_1_t *layer = &list->hwLayers[i];