Merge "Remove reuse of pending deferred transactions." into nyc-mr1-dev

This commit is contained in:
Rob Carr
2016-09-09 16:37:50 +00:00
committed by Android (Google) Code Review
2 changed files with 0 additions and 30 deletions

View File

@@ -228,8 +228,6 @@ class WindowStateAnimator {
int mAttrType; int mAttrType;
static final long PENDING_TRANSACTION_FINISH_WAIT_TIME = 100; static final long PENDING_TRANSACTION_FINISH_WAIT_TIME = 100;
long mDeferTransactionUntilFrame = -1;
long mDeferTransactionTime = -1;
boolean mForceScaleUntilResize; boolean mForceScaleUntilResize;
@@ -2055,35 +2053,11 @@ class WindowStateAnimator {
if (!mWin.isChildWindow()) { if (!mWin.isChildWindow()) {
return; return;
} }
mDeferTransactionUntilFrame = frameNumber;
mDeferTransactionTime = System.currentTimeMillis();
mSurfaceController.deferTransactionUntil( mSurfaceController.deferTransactionUntil(
mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(), mWin.mAttachedWindow.mWinAnimator.mSurfaceController.getHandle(),
frameNumber); 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. * 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 * To achieve this, we prolong the start of the animation and keep producing the first frame of

View File

@@ -742,10 +742,6 @@ class WindowSurfacePlacer {
// Moved from updateWindowsAndWallpaperLocked(). // Moved from updateWindowsAndWallpaperLocked().
if (w.mHasSurface) { 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. // Take care of the window being ready to display.
final boolean committed = winAnimator.commitFinishDrawingLocked(); final boolean committed = winAnimator.commitFinishDrawingLocked();
if (isDefaultDisplay && committed) { if (isDefaultDisplay && committed) {