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

Commit 55a32151 authored by Rob Carr's avatar Rob Carr Committed by Android (Google) Code Review
Browse files

Merge "WM: Defer transactions for BLAST Surfaces too."

parents c2f1781b 2e20bcd6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -150,7 +150,7 @@ public class RelayoutPerfTest extends WindowManagerPerfTestBase {
                        mViewVisibility.getAsInt(), mFlags, mFrameNumber, mOutFrame,
                        mOutContentInsets, mOutVisibleInsets, mOutStableInsets,
                        mOutBackDropFrame, mOutDisplayCutout, mOutMergedConfiguration,
                        mOutSurfaceControl, mOutInsetsState, new Point());
                        mOutSurfaceControl, mOutInsetsState, new Point(), new SurfaceControl());
            }
        }
    }
+4 −1
Original line number Diff line number Diff line
@@ -223,6 +223,9 @@ public abstract class WallpaperService extends Service {

        SurfaceControl mSurfaceControl = new SurfaceControl();

        // Unused relayout out-param
        SurfaceControl mTmpSurfaceControl = new SurfaceControl();

        final BaseSurfaceHolder mSurfaceHolder = new BaseSurfaceHolder() {
            {
                mRequestedFormat = PixelFormat.RGBX_8888;
@@ -902,7 +905,7 @@ public abstract class WallpaperService extends Service {
                            View.VISIBLE, 0, -1, mWinFrame, mContentInsets,
                            mVisibleInsets, mStableInsets, mBackdropFrame,
                            mDisplayCutout, mMergedConfiguration, mSurfaceControl,
                            mInsetsState, mSurfaceSize);
                            mInsetsState, mSurfaceSize, mTmpSurfaceControl);
                    if (mSurfaceControl.isValid()) {
                        mSurfaceHolder.mSurface.copyFrom(mSurfaceControl);
                        mSurfaceControl.release();
+5 −1
Original line number Diff line number Diff line
@@ -92,6 +92,9 @@ interface IWindowSession {
     * @param outSurface Object in which is placed the new display surface.
     * @param insetsState The current insets state in the system.
     * @param outSurfaceSize The width and height of the surface control
     * @param outBlastSurfaceControl A BLAST SurfaceControl allocated by the WindowManager
     * the SurfaceControl willl be managed by the client side, but the WindowManager
     * may use it as a deferTransaction barrier.
     *
     * @return int Result flags: {@link WindowManagerGlobal#RELAYOUT_SHOW_FOCUS},
     * {@link WindowManagerGlobal#RELAYOUT_FIRST_TIME}.
@@ -103,7 +106,8 @@ interface IWindowSession {
            out Rect outBackdropFrame,
            out DisplayCutout.ParcelableWrapper displayCutout,
            out MergedConfiguration outMergedConfiguration, out SurfaceControl outSurfaceControl,
            out InsetsState insetsState, out Point outSurfaceSize);
            out InsetsState insetsState, out Point outSurfaceSize,
            out SurfaceControl outBlastSurfaceControl);

    /*
     * Notify the window manager that an application is relaunching and
+6 −11
Original line number Diff line number Diff line
@@ -507,7 +507,7 @@ public final class ViewRootImpl implements ViewParent,
    @UnsupportedAppUsage
    public final Surface mSurface = new Surface();
    private final SurfaceControl mSurfaceControl = new SurfaceControl();
    private SurfaceControl mBlastSurfaceControl;
    private SurfaceControl mBlastSurfaceControl = new SurfaceControl();

    private BLASTBufferQueue mBlastBufferQueue;

@@ -1698,15 +1698,9 @@ public final class ViewRootImpl implements ViewParent,
        if (mSurfaceControl == null || !mSurfaceControl.isValid()) {
            return null;
        }
        if (mBlastSurfaceControl == null) {
            mBlastSurfaceControl = new SurfaceControl.Builder(mSurfaceSession)
            .setParent(mSurfaceControl)
            .setName("BLAST")
            .setBLASTLayer()
            .build();
        if ((mBlastBufferQueue != null) && mBlastSurfaceControl.isValid()) {
            mBlastBufferQueue = new BLASTBufferQueue(
                mBlastSurfaceControl, width, height);

        }
        mBlastBufferQueue.update(mBlastSurfaceControl, width, height);

@@ -7341,7 +7335,8 @@ public final class ViewRootImpl implements ViewParent,
                insetsPending ? WindowManagerGlobal.RELAYOUT_INSETS_PENDING : 0, frameNumber,
                mTmpFrame, mPendingContentInsets, mPendingVisibleInsets,
                mPendingStableInsets, mPendingBackDropFrame, mPendingDisplayCutout,
                mPendingMergedConfiguration, mSurfaceControl, mTempInsets, mSurfaceSize);
                mPendingMergedConfiguration, mSurfaceControl, mTempInsets, mSurfaceSize,
                mBlastSurfaceControl);
        if (mSurfaceControl.isValid()) {
            if (!WindowManagerGlobal.USE_BLAST_ADAPTER) {
                mSurface.copyFrom(mSurfaceControl);
+1 −1
Original line number Diff line number Diff line
@@ -161,7 +161,7 @@ public class WindowlessWindowManager implements IWindowSession {
            Rect outStableInsets, Rect outBackdropFrame,
            DisplayCutout.ParcelableWrapper cutout, MergedConfiguration mergedConfiguration,
            SurfaceControl outSurfaceControl, InsetsState outInsetsState,
            Point outSurfaceSize) {
            Point outSurfaceSize, SurfaceControl outBLASTSurfaceControl) {
        State state = null;
        synchronized (this) {
            state = mStateForWindow.get(window.asBinder());
Loading