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

Commit ff674ee4 authored by yu.chen's avatar yu.chen Committed by Isaac Lee
Browse files

DO NOT MERGE Set ContainerLayer for buffer-less surface

The container layers havn't buffers,but the buffer size
may beyond the GPU limit, need set those surface as
container layer

Test: Reboot device, rotate the screen, enter and exit multi window, check the UI is normal
           Dump SF layer and check the container layer is set successfully
Bug: 111164627
Change-Id: I6dd3bcb85ffe890c98ce82f2ef20a1576e8cd440
parent cb122ec8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ class AppWindowThumbnail implements Animatable {
                .setFormat(PixelFormat.TRANSLUCENT)
                .setMetadata(appToken.windowType,
                        window != null ? window.mOwnerUid : Binder.getCallingUid())
                .setBufferLayer()
                .build();

        if (SHOW_TRANSACTIONS) {
+3 −2
Original line number Diff line number Diff line
@@ -773,7 +773,8 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo

        final SurfaceControl.Builder b = mService.makeSurfaceBuilder(mSession)
                .setSize(mSurfaceSize, mSurfaceSize)
                .setOpaque(true);
                .setOpaque(true)
                .setContainerLayer(true);
        mWindowingLayer = b.setName("Display Root").build();
        mOverlayLayer = b.setName("Display Overlays").build();

@@ -3885,7 +3886,7 @@ class DisplayContent extends WindowContainer<DisplayContent.DisplayChildWindowCo
        SurfaceSession s = child != null ? child.getSession() : getSession();
        final SurfaceControl.Builder b = mService.makeSurfaceBuilder(s);
        b.setSize(mSurfaceSize, mSurfaceSize);

        b.setContainerLayer(true);
        if (child == null) {
            return b;
        }
+1 −0
Original line number Diff line number Diff line
@@ -104,6 +104,7 @@ class WindowSurfaceController {

        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "new SurfaceControl");
        final SurfaceControl.Builder b = win.makeSurface()
                .setBufferLayer()
                .setParent(win.getSurfaceControl())
                .setName(name)
                .setSize(w, h)