From 7fd56a8c77de31b8b01f33bba7f1384fd385a419 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Tue, 8 Dec 2020 00:04:03 +0100 Subject: [PATCH] Provide vsync id for all animation transactions (except PIP) Test: Builds? Bug: 166302754 Change-Id: Iaa72ca48df09855f3828ef106cec27376cf852b9 --- core/java/android/view/InsetsAnimationThreadControlRunner.java | 1 + .../com/android/wm/shell/splitscreen/DividerImeController.java | 2 ++ .../Shell/src/com/android/wm/shell/splitscreen/DividerView.java | 2 ++ .../core/java/com/android/server/wm/SurfaceAnimationRunner.java | 1 + 4 files changed, 6 insertions(+) diff --git a/core/java/android/view/InsetsAnimationThreadControlRunner.java b/core/java/android/view/InsetsAnimationThreadControlRunner.java index 4a5fa0f971ae2..0939336132a88 100644 --- a/core/java/android/view/InsetsAnimationThreadControlRunner.java +++ b/core/java/android/view/InsetsAnimationThreadControlRunner.java @@ -81,6 +81,7 @@ public class InsetsAnimationThreadControlRunner implements InsetsAnimationContro SyncRtSurfaceTransactionApplier.SurfaceParams surfaceParams = params[i]; applyParams(t, surfaceParams, mTmpFloat9); } + t.setFrameTimelineVsync(Choreographer.getSfInstance().getVsyncId()); t.apply(); t.close(); } diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerImeController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerImeController.java index eb82357f2dea7..71710af4ffb54 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerImeController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerImeController.java @@ -26,6 +26,7 @@ import android.annotation.Nullable; import android.graphics.Rect; import android.os.Handler; import android.util.Slog; +import android.view.Choreographer; import android.view.SurfaceControl; import android.window.TaskOrganizer; import android.window.WindowContainerToken; @@ -338,6 +339,7 @@ class DividerImeController implements DisplayImeController.ImePositionProcessor SurfaceControl.Transaction t = mTransactionPool.acquire(); float value = (float) animation.getAnimatedValue(); onProgress(value, t); + t.setFrameTimelineVsync(Choreographer.getSfInstance().getVsyncId()); t.apply(); mTransactionPool.release(t); }); diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerView.java b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerView.java index c6496ad6246ff..ba071666b5aaa 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerView.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/splitscreen/DividerView.java @@ -37,6 +37,7 @@ import android.os.Handler; import android.os.RemoteException; import android.util.AttributeSet; import android.util.Slog; +import android.view.Choreographer; import android.view.Display; import android.view.MotionEvent; import android.view.PointerIcon; @@ -1108,6 +1109,7 @@ public class DividerView extends FrameLayout implements OnTouchListener, } resizeSplitSurfaces(t, mDockedRect, mDockedTaskRect, mOtherRect, mOtherTaskRect); if (ownTransaction) { + t.setFrameTimelineVsync(Choreographer.getSfInstance().getVsyncId()); t.apply(); mTiles.releaseTransaction(t); } diff --git a/services/core/java/com/android/server/wm/SurfaceAnimationRunner.java b/services/core/java/com/android/server/wm/SurfaceAnimationRunner.java index 34d084a3f9f8d..92e2ee6f8af96 100644 --- a/services/core/java/com/android/server/wm/SurfaceAnimationRunner.java +++ b/services/core/java/com/android/server/wm/SurfaceAnimationRunner.java @@ -259,6 +259,7 @@ class SurfaceAnimationRunner { private void applyTransaction() { mFrameTransaction.setAnimationTransaction(); + mFrameTransaction.setFrameTimelineVsync(mChoreographer.getVsyncId()); mFrameTransaction.apply(); mApplyScheduled = false; }