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

Commit 089e5da3 authored by Valerie Hau's avatar Valerie Hau
Browse files

Switch BLAST flag to WindowManagerGlobal

Setup for P/H experiment by switching to WindowManagerGlobal.
Follow up patch will set the flag based on DeviceConfig

Bug: 147096935
Test: build, boot, manual
Change-Id: If062fc16a90e0f3069064b969e1a63a6142421df
parent 3c5d179a
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -379,7 +379,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
                 * This gets called on a RenderThread worker thread, so members accessed here must
                 * be protected by a lock.
                 */
                final boolean useBLAST = ViewRootImpl.USE_BLAST_BUFFERQUEUE;
                final boolean useBLAST = WindowManagerGlobal.USE_BLAST_ADAPTER;
                viewRoot.registerRtFrameCallback(frame -> {
                    try {
                        final SurfaceControl.Transaction t = useBLAST ?
@@ -1107,7 +1107,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall

    private void applySurfaceTransforms(SurfaceControl surface, SurfaceControl.Transaction t,
            Rect position, long frameNumber) {
        if (frameNumber > 0 && ViewRootImpl.USE_BLAST_BUFFERQUEUE == false) {
        if (frameNumber > 0 && !WindowManagerGlobal.USE_BLAST_ADAPTER) {
            final ViewRootImpl viewRoot = getViewRootImpl();

            t.deferTransactionUntilSurface(surface, viewRoot.mSurface,
@@ -1125,7 +1125,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
    }

    private void setParentSpaceRectangle(Rect position, long frameNumber) {
        final boolean useBLAST = ViewRootImpl.USE_BLAST_BUFFERQUEUE;
        final boolean useBLAST = WindowManagerGlobal.USE_BLAST_ADAPTER;
        final ViewRootImpl viewRoot = getViewRootImpl();
        final SurfaceControl.Transaction t = useBLAST ? viewRoot.getBLASTSyncTransaction() :
            mRtTransaction;
@@ -1186,7 +1186,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall

        @Override
        public void positionLost(long frameNumber) {
            boolean useBLAST = ViewRootImpl.USE_BLAST_BUFFERQUEUE;
            boolean useBLAST = WindowManagerGlobal.USE_BLAST_ADAPTER;
            if (DEBUG) {
                Log.d(TAG, String.format("%d windowPositionLost, frameNr = %d",
                        System.identityHashCode(this), frameNumber));
@@ -1524,7 +1524,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall
    @Override
    public void invalidate(boolean invalidateCache) {
        super.invalidate(invalidateCache);
        if (ViewRootImpl.USE_BLAST_BUFFERQUEUE == false) {
        if (!WindowManagerGlobal.USE_BLAST_ADAPTER) {
            return;
        }
        final ViewRootImpl viewRoot = getViewRootImpl();
+2 −7
Original line number Diff line number Diff line
@@ -191,11 +191,6 @@ public final class ViewRootImpl implements ViewParent,
     */
    private static final boolean MT_RENDERER_AVAILABLE = true;

    /**
     * @hide
     */
    public static final boolean USE_BLAST_BUFFERQUEUE = false;

    /**
     * If set to 2, the view system will switch from using rectangles retrieved from window to
     * dispatch to the view hierarchy to using {@link InsetsController}, that derives the insets
@@ -1312,7 +1307,7 @@ public final class ViewRootImpl implements ViewParent,
            }
            mWindowAttributes.privateFlags |= compatibleWindowFlag;

            if (USE_BLAST_BUFFERQUEUE) {
            if (WindowManagerGlobal.USE_BLAST_ADAPTER) {
                mWindowAttributes.privateFlags =
                    WindowManager.LayoutParams.PRIVATE_FLAG_USE_BLAST;
            }
@@ -7273,7 +7268,7 @@ public final class ViewRootImpl implements ViewParent,
                mPendingStableInsets, mPendingBackDropFrame, mPendingDisplayCutout,
                mPendingMergedConfiguration, mSurfaceControl, mTempInsets);
        if (mSurfaceControl.isValid()) {
            if (USE_BLAST_BUFFERQUEUE == false) {
            if (!WindowManagerGlobal.USE_BLAST_ADAPTER) {
                mSurface.copyFrom(mSurfaceControl);
            } else {
                mSurface.transferFrom(getOrCreateBLASTSurface(
+6 −0
Original line number Diff line number Diff line
@@ -56,6 +56,12 @@ import java.util.ArrayList;
public final class WindowManagerGlobal {
    private static final String TAG = "WindowManager";

    /**
     * This flag controls whether ViewRootImpl will utilize the Blast Adapter
     * to send buffer updates to SurfaceFlinger
     */
    public static final boolean USE_BLAST_ADAPTER = false;

    /**
     * The user is navigating with keys (not the touch screen), so
     * navigational focus should be shown.