Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 453d2e7d authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "BLASTSyncEngine: Add timeouts" into rvc-dev am: 03c06c01

Change-Id: Ie0ab024e908d56614957982b5726954402766965
parents 436ead02 03c06c01
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -114,7 +114,6 @@ class BLASTSyncEngine {
        return st.addToSync(wc);
    }

    // TODO(b/148476626): TIMEOUTS!
    void setReady(int id) {
        final SyncState st = mPendingSyncs.get(id);
        st.setReady();
+8 −0
Original line number Diff line number Diff line
@@ -4661,6 +4661,7 @@ public class WindowManagerService extends IWindowManager.Stub
        public static final int RECOMPUTE_FOCUS = 61;
        public static final int ON_POINTER_DOWN_OUTSIDE_FOCUS = 62;
        public static final int LAYOUT_AND_ASSIGN_WINDOW_LAYERS_IF_NEEDED = 63;
        public static final int WINDOW_STATE_BLAST_SYNC_TIMEOUT = 64;

        /**
         * Used to denote that an integer field in a message will not be used.
@@ -5041,6 +5042,13 @@ public class WindowManagerService extends IWindowManager.Stub
                    }
                    break;
                }
                case WINDOW_STATE_BLAST_SYNC_TIMEOUT: {
                    synchronized (mGlobalLock) {
                      final WindowState ws = (WindowState) msg.obj;
                      ws.finishDrawing(null);
                    }
                    break;
                }
            }
            if (DEBUG_WINDOW_TRACE) {
                Slog.v(TAG_WM, "handleMessage: exit");
+10 −0
Original line number Diff line number Diff line
@@ -137,6 +137,7 @@ import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_NORMAL;
import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_REMOVING_FOCUS;
import static com.android.server.wm.WindowManagerService.UPDATE_FOCUS_WILL_PLACE_SURFACES;
import static com.android.server.wm.WindowManagerService.WINDOWS_FREEZING_SCREENS_TIMEOUT;
import static com.android.server.wm.WindowManagerService.H.WINDOW_STATE_BLAST_SYNC_TIMEOUT;
import static com.android.server.wm.WindowStateAnimator.COMMIT_DRAW_PENDING;
import static com.android.server.wm.WindowStateAnimator.DRAW_PENDING;
import static com.android.server.wm.WindowStateAnimator.HAS_DRAWN;
@@ -669,6 +670,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
     */
    int mFrameRateSelectionPriority = RefreshRatePolicy.LAYER_PRIORITY_UNSET;

    static final int BLAST_TIMEOUT_DURATION = 5000; /* milliseconds */

    /**
     * @return The insets state as requested by the client, i.e. the dispatched insets state
     *         for which the visibilities are overridden with what the client requested.
@@ -5671,6 +5674,11 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        mWaitingListener = waitingListener;
        mWaitingSyncId = waitingId;
        mUsingBLASTSyncTransaction = true;

        mWmService.mH.removeMessages(WINDOW_STATE_BLAST_SYNC_TIMEOUT, this);
        mWmService.mH.sendNewMessageDelayed(WINDOW_STATE_BLAST_SYNC_TIMEOUT, this,
            BLAST_TIMEOUT_DURATION);

        return true;
    }

@@ -5678,6 +5686,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        if (!mUsingBLASTSyncTransaction) {
            return mWinAnimator.finishDrawingLocked(postDrawTransaction);
        }

        mWmService.mH.removeMessages(WINDOW_STATE_BLAST_SYNC_TIMEOUT, this);
        if (postDrawTransaction == null) {
            postDrawTransaction = new SurfaceControl.Transaction();
        }