diff options
author | Ramakant Singh <ramaka@codeaurora.org> | 2014-12-08 17:09:31 +0530 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-05-12 08:05:00 -0700 |
commit | a25137dfa23996449e3c5156455c898749a08a40 (patch) | |
tree | defbb1a73598b93421cb8baa6d904065e2df439d | |
parent | 4d0417d2300efdbce801b13d5aaf3b23481bf18c (diff) | |
download | hardware_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.cpp | 18 |
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]; |