Merge "Only complete sync draw for visible window" into tm-qpr-dev

This commit is contained in:
Riddle Hsu
2022-09-13 12:21:58 +00:00
committed by Android (Google) Code Review
2 changed files with 6 additions and 6 deletions

View File

@@ -650,7 +650,7 @@ public class WindowManagerService extends IWindowManager.Stub
// Whether the system should use BLAST for ViewRootImpl
final boolean mUseBLAST;
// Whether to enable BLASTSyncEngine Transaction passing.
final boolean mUseBLASTSync = true;
static final boolean USE_BLAST_SYNC = true;
final BLASTSyncEngine mSyncEngine;
@@ -2576,7 +2576,7 @@ public class WindowManagerService extends IWindowManager.Stub
if (outSyncIdBundle != null) {
final int maybeSyncSeqId;
if (mUseBLASTSync && win.useBLASTSync() && viewVisibility != View.GONE
if (USE_BLAST_SYNC && win.useBLASTSync() && viewVisibility == View.VISIBLE
&& win.mSyncSeqId > lastSyncSeqId) {
maybeSyncSeqId = win.shouldSyncWithBuffers() ? win.mSyncSeqId : -1;
win.markRedrawForSyncReported();
@@ -5659,7 +5659,7 @@ public class WindowManagerService extends IWindowManager.Stub
}
public boolean useBLASTSync() {
return mUseBLASTSync;
return USE_BLAST_SYNC;
}
@Override

View File

@@ -5959,10 +5959,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
@Override
boolean isSyncFinished() {
if (mSyncState == SYNC_STATE_WAITING_FOR_DRAW && mViewVisibility == View.GONE
if (mSyncState == SYNC_STATE_WAITING_FOR_DRAW && mViewVisibility != View.VISIBLE
&& !isVisibleRequested()) {
// Don't wait for GONE windows. However, we don't alter the state in case the window
// becomes un-gone while the syncset is still active.
// Don't wait for invisible windows. However, we don't alter the state in case the
// window becomes visible while the sync group is still active.
return true;
}
return super.isSyncFinished();