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

View File

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