From 5ef2940b89606257cd848d25d6263f496096b4e7 Mon Sep 17 00:00:00 2001 From: Chavi Weingarten Date: Thu, 23 Jun 2022 16:44:06 +0000 Subject: [PATCH] Set mAlreadyRequestedSync only when in a BLASTSync WindowState#useBLASTSync returns true if in a blast sync but also if there are mDrawHandlers. In that case, we only want to mark mAlreadyRequestedSync to true if we know it's a blast sync since the unmark is done when the sync is complete. Test: Pip expand no delay Fixes: 236882306 Change-Id: Ifb5785b93888a0fb3e27180005ea1b3940a293b7 --- .../java/com/android/server/wm/WindowManagerService.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index c2513662786e7..b314f045e7f1f 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -122,6 +122,7 @@ import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_ALL; import static com.android.server.wm.SurfaceAnimator.ANIMATION_TYPE_APP_TRANSITION; import static com.android.server.wm.WindowContainer.AnimationFlags.CHILDREN; import static com.android.server.wm.WindowContainer.AnimationFlags.TRANSITION; +import static com.android.server.wm.WindowContainer.SYNC_STATE_NONE; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_DISPLAY; import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_INPUT_METHOD; @@ -2550,7 +2551,11 @@ public class WindowManagerService extends IWindowManager.Stub win.mLastSeqIdSentToRelayout = win.mSyncSeqId; outSyncIdBundle.putInt("seqid", win.mSyncSeqId); - win.mAlreadyRequestedSync = true; + // Only mark mAlreadyRequestedSync if there's an explicit sync request, and not if + // we're syncing due to mDrawHandlers + if (win.mSyncState != SYNC_STATE_NONE) { + win.mAlreadyRequestedSync = true; + } } else { outSyncIdBundle.putInt("seqid", -1); }