Loading core/java/android/app/servertransaction/WindowStateResizeItem.java +4 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,10 @@ public class WindowStateResizeItem extends WindowStateTransactionItem { Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); } public boolean getSyncWithBuffersForTest() { return mSyncWithBuffers; } // Parcelable implementation /** Writes to Parcel. */ Loading services/core/java/com/android/server/wm/DeferredDisplayUpdater.java +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ class DeferredDisplayUpdater { && mDisplayContent.mAtmService.mKeyguardController.isKeyguardOrAodShowing( mDisplayContent.mDisplayId)) { Slog.i(TAG, notificationShade + " uses blast for display switch"); notificationShade.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; notificationShade.useBlastForNextSync(); } } Loading services/core/java/com/android/server/wm/Transition.java +3 −4 Original line number Diff line number Diff line Loading @@ -647,7 +647,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final WindowState top = dc.getDisplayPolicy().getTopFullscreenOpaqueWindow(); if (top != null) { mIsSeamlessRotation = true; top.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; top.useBlastForNextSync(); ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Override sync-method for %s " + "because seamless rotating", top.getName()); } Loading Loading @@ -1751,9 +1751,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } else { // If there is an existing sync group for the commit-at-end activity, // enforce BLAST sync method for its windows, before resuming config dispatch. target.forAllWindows(windowState -> { windowState.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; }, true /* traverseTopToBottom */); target.forAllWindows(WindowState::useBlastForNextSync, true /* traverseTopToBottom */); } // Reset surface state here (since it was skipped in buildFinishTransaction). Since // we are resuming config to the "current" state, we have to calculate the matching Loading services/core/java/com/android/server/wm/TransitionController.java +1 −1 Original line number Diff line number Diff line Loading @@ -786,7 +786,7 @@ class TransitionController { && (endWidth != startWidth || endHeight != startHeight)) { displayContent.forAllWindows(w -> { if (w.mToken.mRoundedCornerOverlay && w.mHasSurface) { w.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; w.useBlastForNextSync(); } }, true /* traverseTopToBottom */); } Loading services/core/java/com/android/server/wm/WindowState.java +11 −0 Original line number Diff line number Diff line Loading @@ -5956,6 +5956,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return syncGroup.mSyncMethod; } void useBlastForNextSync() { if (mSyncMethodOverride == BLASTSyncEngine.METHOD_BLAST) return; mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; final BLASTSyncEngine.SyncGroup syncGroup = getSyncGroup(); // If not in sync, then the seqId will be incremented in prepareSync (when added) if (syncGroup == null || syncGroup.mSyncMethod == BLASTSyncEngine.METHOD_BLAST) { return; } mBufferSeqId = mSyncSeqId + 1; } boolean shouldSyncWithBuffers() { if (!mDrawHandlers.isEmpty()) return true; return getSyncMethod() == BLASTSyncEngine.METHOD_BLAST; Loading Loading
core/java/android/app/servertransaction/WindowStateResizeItem.java +4 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,10 @@ public class WindowStateResizeItem extends WindowStateTransactionItem { Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); } public boolean getSyncWithBuffersForTest() { return mSyncWithBuffers; } // Parcelable implementation /** Writes to Parcel. */ Loading
services/core/java/com/android/server/wm/DeferredDisplayUpdater.java +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ class DeferredDisplayUpdater { && mDisplayContent.mAtmService.mKeyguardController.isKeyguardOrAodShowing( mDisplayContent.mDisplayId)) { Slog.i(TAG, notificationShade + " uses blast for display switch"); notificationShade.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; notificationShade.useBlastForNextSync(); } } Loading
services/core/java/com/android/server/wm/Transition.java +3 −4 Original line number Diff line number Diff line Loading @@ -647,7 +647,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { final WindowState top = dc.getDisplayPolicy().getTopFullscreenOpaqueWindow(); if (top != null) { mIsSeamlessRotation = true; top.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; top.useBlastForNextSync(); ProtoLog.v(WmProtoLogGroups.WM_DEBUG_WINDOW_TRANSITIONS, "Override sync-method for %s " + "because seamless rotating", top.getName()); } Loading Loading @@ -1751,9 +1751,8 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener { } else { // If there is an existing sync group for the commit-at-end activity, // enforce BLAST sync method for its windows, before resuming config dispatch. target.forAllWindows(windowState -> { windowState.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; }, true /* traverseTopToBottom */); target.forAllWindows(WindowState::useBlastForNextSync, true /* traverseTopToBottom */); } // Reset surface state here (since it was skipped in buildFinishTransaction). Since // we are resuming config to the "current" state, we have to calculate the matching Loading
services/core/java/com/android/server/wm/TransitionController.java +1 −1 Original line number Diff line number Diff line Loading @@ -786,7 +786,7 @@ class TransitionController { && (endWidth != startWidth || endHeight != startHeight)) { displayContent.forAllWindows(w -> { if (w.mToken.mRoundedCornerOverlay && w.mHasSurface) { w.mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; w.useBlastForNextSync(); } }, true /* traverseTopToBottom */); } Loading
services/core/java/com/android/server/wm/WindowState.java +11 −0 Original line number Diff line number Diff line Loading @@ -5956,6 +5956,17 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP return syncGroup.mSyncMethod; } void useBlastForNextSync() { if (mSyncMethodOverride == BLASTSyncEngine.METHOD_BLAST) return; mSyncMethodOverride = BLASTSyncEngine.METHOD_BLAST; final BLASTSyncEngine.SyncGroup syncGroup = getSyncGroup(); // If not in sync, then the seqId will be incremented in prepareSync (when added) if (syncGroup == null || syncGroup.mSyncMethod == BLASTSyncEngine.METHOD_BLAST) { return; } mBufferSeqId = mSyncSeqId + 1; } boolean shouldSyncWithBuffers() { if (!mDrawHandlers.isEmpty()) return true; return getSyncMethod() == BLASTSyncEngine.METHOD_BLAST; Loading