Remove reuse of pending deferred transactions.
am: 5dc3f284bd
Change-Id: I1b1e04d5bbab0342356f0909bc0528ca2d411644
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user