summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-08-25 18:41:57 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2023-08-25 18:41:57 +0000
commit20a6ce7d2831a01c9d0e24c2d4674e4954eec2e7 (patch)
tree394009c5592fc727ebef1b1650e0dff316102c0f
parent117d21abd04102670b4a43e0777ae169fb952238 (diff)
parentc67c9b66928258d6b523a5f30b57385fe58ac362 (diff)
Merge "perf: disable pre-rendering feature for some multi-layer cases" into t-keystone-qcom-dev
-rw-r--r--core/java/android/view/WindowManagerGlobal.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java
index ae9a1220a246..1afefe5777c7 100644
--- a/core/java/android/view/WindowManagerGlobal.java
+++ b/core/java/android/view/WindowManagerGlobal.java
@@ -546,7 +546,13 @@ public final class WindowManagerGlobal {
visibleRootCount++;
}
}
- if (visibleRootCount == 1) {
+
+ // The visibleRootCount more than one means multi-layer, and multi-layer rendering
+ // can result in unexpected pending between UI thread and render thread with
+ // pre-rendering enabled. Need to disable pre-rendering for multi-layer cases.
+ if (visibleRootCount > 1) {
+ ScrollOptimizer.disableOptimizer(true);
+ } else if (visibleRootCount == 1) {
ScrollOptimizer.disableOptimizer(false);
}