qdutils: Fix checking for HWC_BLENDING_NONE alone
Check for planeAlpha value as well along with HWC_BLENDING_NONE
as the latter is set if layer is Opaque independent of planeAlpha.
Change-Id: I32a1a7da4d5efec7515e8e4faf77e00278580ff0
diff --git a/libqdutils/cb_utils.cpp b/libqdutils/cb_utils.cpp
index a2b706c..ef66ac6 100644
--- a/libqdutils/cb_utils.cpp
+++ b/libqdutils/cb_utils.cpp
@@ -51,7 +51,8 @@
if(cb_swap_rect::getInstance().checkSwapRectFeature_on() == true){
wormholeRegion.set(0,0);
for(size_t i = 0 ; i < last; i++) {
- if((list->hwLayers[i].blending == HWC_BLENDING_NONE) ||
+ if(((list->hwLayers[i].blending == HWC_BLENDING_NONE) &&
+ (list->hwLayers[i].planeAlpha == 0xFF)) ||
!(layerProp[i].mFlags & HWC_COPYBIT) ||
(list->hwLayers[i].flags & HWC_SKIP_HWC_COMPOSITION))
continue ;
@@ -65,6 +66,7 @@
// need to take care only in per pixel blending.
// Restrict calculation only for copybit layers.
if((list->hwLayers[i].blending != HWC_BLENDING_NONE) ||
+ (list->hwLayers[i].planeAlpha != 0xFF) ||
!(layerProp[i].mFlags & HWC_COPYBIT))
continue ;
hwc_rect_t displayFrame = list->hwLayers[i].displayFrame;