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

View File

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