Merge "Reduce surface placement of sync group" into tm-qpr-dev

This commit is contained in:
Riddle Hsu
2022-11-30 12:13:36 +00:00
committed by Android (Google) Code Review
2 changed files with 15 additions and 10 deletions

View File

@@ -226,6 +226,9 @@ class BLASTSyncEngine {
}
private void setReady(boolean ready) {
if (mReady == ready) {
return;
}
ProtoLog.v(WM_DEBUG_SYNC_ENGINE, "SyncGroup %d: Set ready", mSyncId);
mReady = ready;
if (!ready) return;
@@ -239,7 +242,9 @@ class BLASTSyncEngine {
ProtoLog.v(WM_DEBUG_SYNC_ENGINE, "SyncGroup %d: Adding to group: %s", mSyncId, wc);
wc.setSyncGroup(this);
wc.prepareSync();
mWm.mWindowPlacerLocked.requestTraversal();
if (mReady) {
mWm.mWindowPlacerLocked.requestTraversal();
}
}
void onCancelSync(WindowContainer wc) {

View File

@@ -74,15 +74,15 @@ public class SyncEngineTests extends WindowTestsBase {
int id = startSyncSet(bse, listener);
bse.addToSyncSet(id, mockWC);
// Make sure a traversal is requested
verify(mWm.mWindowPlacerLocked, times(1)).requestTraversal();
// The traversal is not requested because ready is not set.
verify(mWm.mWindowPlacerLocked, times(0)).requestTraversal();
bse.onSurfacePlacement();
verify(listener, times(0)).onTransactionReady(anyInt(), any());
bse.setReady(id);
// Make sure a traversal is requested
verify(mWm.mWindowPlacerLocked, times(2)).requestTraversal();
verify(mWm.mWindowPlacerLocked).requestTraversal();
bse.onSurfacePlacement();
verify(listener, times(1)).onTransactionReady(eq(id), notNull());
@@ -103,14 +103,14 @@ public class SyncEngineTests extends WindowTestsBase {
int id = startSyncSet(bse, listener);
bse.addToSyncSet(id, mockWC);
bse.setReady(id);
// Make sure traversals requested (one for add and another for setReady)
verify(mWm.mWindowPlacerLocked, times(2)).requestTraversal();
// Make sure traversals requested.
verify(mWm.mWindowPlacerLocked).requestTraversal();
bse.onSurfacePlacement();
verify(listener, times(0)).onTransactionReady(anyInt(), any());
mockWC.onSyncFinishedDrawing();
// Make sure a (third) traversal is requested.
verify(mWm.mWindowPlacerLocked, times(3)).requestTraversal();
// Make sure the second traversal is requested.
verify(mWm.mWindowPlacerLocked, times(2)).requestTraversal();
bse.onSurfacePlacement();
verify(listener, times(1)).onTransactionReady(eq(id), notNull());
}
@@ -127,8 +127,8 @@ public class SyncEngineTests extends WindowTestsBase {
int id = startSyncSet(bse, listener);
bse.addToSyncSet(id, mockWC);
bse.setReady(id);
// Make sure traversals requested (one for add and another for setReady)
verify(mWm.mWindowPlacerLocked, times(2)).requestTraversal();
// Make sure traversals requested.
verify(mWm.mWindowPlacerLocked).requestTraversal();
bse.onSurfacePlacement();
verify(listener, times(0)).onTransactionReady(anyInt(), any());