Reduce setInputWindows calls
The compare function 'Region::isTriviallyEqual' is just compare the
first iterator between two regions, and it will always get false if we
passed it from binder that would create a new one even they are equal.
That would cause the layer to recompute the visible regions and make
it direct to call 'updateInputWindowInfo' continually.
- Change to use Region::hasSameRects to reduce some unnecessary calls.
Bug: 133780957
Test: manual, open debug logs and watch a video
Change-Id: Ibc9c488c179b403b203a1853cd6f3be9bb23fbaa
diff --git a/services/surfaceflinger/LayerRejecter.cpp b/services/surfaceflinger/LayerRejecter.cpp
index d3364a0..e6c8654 100644
--- a/services/surfaceflinger/LayerRejecter.cpp
+++ b/services/surfaceflinger/LayerRejecter.cpp
@@ -120,7 +120,7 @@
// We latch the transparent region here, instead of above where we latch
// the rest of the geometry because it is only content but not necessarily
// resize dependent.
- if (!mFront.activeTransparentRegion_legacy.isTriviallyEqual(
+ if (!mFront.activeTransparentRegion_legacy.hasSameRects(
mFront.requestedTransparentRegion_legacy)) {
mFront.activeTransparentRegion_legacy = mFront.requestedTransparentRegion_legacy;