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
This commit is contained in:
Chavi Weingarten
2022-06-23 16:44:06 +00:00
committed by Evan Rosky
parent 23d883bc4c
commit 5ef2940b89

View File

@@ -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);
}