SurfaceFlinger: set transaction flag internally for refresh rate overlay
Do not call setTransactionFlags from RefreshRateOverlay as this may
cause IdleTimer to reset. Instead just set the internal transation
state of flinger.
Test: scroll within calendar app and observe systraces
Bug: 130759239
Change-Id: I74dad1e7e9c9b28bbd2d6dec8a949028fe6052ca
diff --git a/services/surfaceflinger/RefreshRateOverlay.cpp b/services/surfaceflinger/RefreshRateOverlay.cpp
index e70bfe4..b5dd557 100644
--- a/services/surfaceflinger/RefreshRateOverlay.cpp
+++ b/services/surfaceflinger/RefreshRateOverlay.cpp
@@ -47,7 +47,7 @@
void RefreshRateOverlay::changeRefreshRate(RefreshRateType type) {
const half3& color = (type == RefreshRateType::PERFORMANCE) ? GREEN : RED;
mLayer->setColor(color);
- mFlinger.setTransactionFlags(eTransactionMask);
+ mFlinger.mTransactionFlags.fetch_or(eTransactionMask);
}
}; // namespace android