OSDN Git Service

Fix Damage rect regression
[android-x86/external-IA-Hardware-Composer.git] / common / core / overlaylayer.cpp
index 2eeb6b5..a8338d9 100644 (file)
@@ -237,6 +237,15 @@ void OverlayLayer::InitializeState(HwcLayer* layer,
   }
 
   surface_damage_ = layer->GetLayerDamage();
+  // In case of layer using blening we need to force partial clear. Otherwise
+  // we see content not getting updated correctly. For example:
+  // on Android enable, settings put system user_rotation 1 and
+  // navigate to settings on Android.
+  if (((blending_ != HWCBlending::kBlendingNone) && !surface_damage_.empty())) {
+    state_ |= kForcePartialClear;
+    surface_damage_ = layer->GetDisplayFrame();
+  }
+
   SetBuffer(layer->GetNativeHandle(), layer->GetAcquireFence(),
             resource_manager, true, layer);