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
This commit is contained in:
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user