Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit da77412d authored by Robert Carr's avatar Robert Carr Committed by android-build-merger
Browse files

Remove reuse of pending deferred transactions.

am: 5dc3f284

Change-Id: I1b1e04d5bbab0342356f0909bc0528ca2d411644
parents 6462be90 5dc3f284
Loading
Loading
Loading
Loading
+0 −26
Original line number Diff line number Diff line
@@ -228,8 +228,6 @@ class WindowStateAnimator {
    int mAttrType;

    static final long PENDING_TRANSACTION_FINISH_WAIT_TIME = 100;
    long mDeferTransactionUntilFrame = -1;
    long mDeferTransactionTime = -1;

    boolean mForceScaleUntilResize;

@@ -2055,35 +2053,11 @@ class WindowStateAnimator {
        if (!mWin.isChildWindow()) {
            return;
        }
        mDeferTransactionUntilFrame = frameNumber;
        mDeferTransactionTime = System.currentTimeMillis();
        mSurfaceController.deferTransactionUntil(
                mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(),
                frameNumber);
    }

    // Defer the current transaction to the frame number of the last saved transaction.
    // We do this to avoid shooting through an unsynchronized transaction while something is
    // pending. This is generally fine, as either we will get in on the synchronization,
    // or SurfaceFlinger will see that the frame has already occured. The only
    // potential problem is in frame number resets so we reset things with a timeout
    // every so often to be careful.
    void deferToPendingTransaction() {
        if (mDeferTransactionUntilFrame < 0) {
            return;
        }
        long time = System.currentTimeMillis();
        if (time > mDeferTransactionTime + PENDING_TRANSACTION_FINISH_WAIT_TIME) {
            mDeferTransactionTime = -1;
            mDeferTransactionUntilFrame = -1;
        } else if (mWin.mAttachedWindow != null &&
                mWin.mAttachedWindow.mWinAnimator.hasSurface()) {
            mSurfaceController.deferTransactionUntil(
                    mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(),
                    mDeferTransactionUntilFrame);
        }
    }

    /**
     * Sometimes we need to synchronize the first frame of animation with some external event.
     * To achieve this, we prolong the start of the animation and keep producing the first frame of
+0 −4
Original line number Diff line number Diff line
@@ -742,10 +742,6 @@ class WindowSurfacePlacer {

                // Moved from updateWindowsAndWallpaperLocked().
                if (w.mHasSurface) {
                    // If we have recently synchronized a previous transaction for this
                    // window ensure we don't push through an unsynchronized one now.
                    winAnimator.deferToPendingTransaction();

                    // Take care of the window being ready to display.
                    final boolean committed = winAnimator.commitFinishDrawingLocked();
                    if (isDefaultDisplay && committed) {