OSDN Git Service

Don't clear surface if only src rect has changed.
authorKalyan Kondapally <kalyan.kondapally@intel.com>
Wed, 23 May 2018 07:31:53 +0000 (00:31 -0700)
committerKalyan Kondapally <kalyan.kondapally@intel.com>
Thu, 24 May 2018 04:55:29 +0000 (21:55 -0700)
We clear surface as needed depending on Display rect
changes. This should be enough to handle all cases.

Jira: None.
Test: No new regressions seen on Android.
Signed-off-by: Kalyan Kondapally <kalyan.kondapally@intel.com>
common/core/hwclayer.cpp
common/display/displayplanestate.cpp
common/display/displayqueue.cpp

index cdb90b4..6dab385 100644 (file)
@@ -64,8 +64,6 @@ void HwcLayer::SetSourceCrop(const HwcRect<float>& source_crop) {
       (source_crop.top != source_crop_.top) ||
       (source_crop.bottom != source_crop_.bottom)) {
     layer_cache_ |= kSourceRectChanged;
-    UpdateRenderingDamage(HwcRect<int>(source_crop), HwcRect<int>(source_crop_),
-                          false);
     source_crop_ = source_crop;
     source_crop_width_ =
         static_cast<int>(ceilf(source_crop.right - source_crop.left));
index 264f5ba..bd5ec98 100644 (file)
@@ -249,8 +249,7 @@ void DisplayPlaneState::RefreshLayerRects(
     const HwcRect<float> &source_crop = layer.GetSourceCrop();
     CalculateRect(df, target_display_frame);
     CalculateSourceRect(source_crop, target_source_crop);
-    if (!layer.IsCursorLayer() &&
-        (layer.HasDimensionsChanged() || layer.HasSourceRectChanged())) {
+    if (!layer.IsCursorLayer() && (layer.HasDimensionsChanged())) {
       only_cursor_layer = false;
     }
 
index e97291d..cf4a64b 100644 (file)
@@ -311,7 +311,7 @@ void DisplayQueue::GetCachedLayers(const std::vector<OverlayLayer>& layers,
         for (size_t i = 0; i < layers_size; i++) {
           const size_t& source_index = source_layers.at(i);
           const OverlayLayer& layer = layers.at(source_index);
-          if (layer.HasDimensionsChanged() || layer.HasSourceRectChanged()) {
+          if (layer.HasDimensionsChanged()) {
             update_rect = true;
             break;
           }