diff options
author | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-08-25 18:41:57 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-08-25 18:41:57 +0000 |
commit | 20a6ce7d2831a01c9d0e24c2d4674e4954eec2e7 (patch) | |
tree | 394009c5592fc727ebef1b1650e0dff316102c0f | |
parent | 117d21abd04102670b4a43e0777ae169fb952238 (diff) | |
parent | c67c9b66928258d6b523a5f30b57385fe58ac362 (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.java | 8 |
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); } |