Merge "Allow canceled draws to get retried for sync" into tm-qpr-dev

This commit is contained in:
Chavi Weingarten
2022-07-01 13:11:49 +00:00
committed by Android (Google) Code Review

View File

@@ -604,6 +604,8 @@ public final class ViewRootImpl implements ViewParent,
*/ */
private boolean mCheckIfCanDraw = false; private boolean mCheckIfCanDraw = false;
private boolean mDrewOnceForSync = false;
int mSyncSeqId = 0; int mSyncSeqId = 0;
int mLastSyncSeqId = 0; int mLastSyncSeqId = 0;
@@ -2999,6 +3001,9 @@ public final class ViewRootImpl implements ViewParent,
reportNextDraw(); reportNextDraw();
mSyncBuffer = true; mSyncBuffer = true;
isSyncRequest = true; isSyncRequest = true;
if (!cancelDraw) {
mDrewOnceForSync = false;
}
} }
final boolean surfaceControlChanged = final boolean surfaceControlChanged =
@@ -3520,9 +3525,11 @@ public final class ViewRootImpl implements ViewParent,
mCheckIfCanDraw = isSyncRequest || cancelDraw; mCheckIfCanDraw = isSyncRequest || cancelDraw;
boolean cancelAndRedraw = mAttachInfo.mTreeObserver.dispatchOnPreDraw() || cancelDraw; boolean cancelAndRedraw =
mAttachInfo.mTreeObserver.dispatchOnPreDraw() || (cancelDraw && mDrewOnceForSync);
if (!cancelAndRedraw) { if (!cancelAndRedraw) {
createSyncIfNeeded(); createSyncIfNeeded();
mDrewOnceForSync = true;
} }
if (!isViewVisible) { if (!isViewVisible) {