Revert "Make WindowContainer surfaces container layers by default."
This reverts commit 139c77763bbba26d30993589a43aa987a0ba4ef0.
Reason: Device gets put into GL comp pretty much all the time,
trashing performance and battery.
Bug: 123686354
Bug: 122561221
Change-Id: Icf658f331c407d03e844557cc2531c034aa38083
Exempt-From-Owner-Approval: Simple revert
(cherry picked from commit f6ef18334b4b90f025fa0ece969c2ce2f92221b1)
diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java
index eae7d6b..5814e69 100644
--- a/core/java/android/app/ActivityView.java
+++ b/core/java/android/app/ActivityView.java
@@ -363,7 +363,7 @@
final IWindowManager wm = WindowManagerGlobal.getWindowManagerService();
mRootSurfaceControl = new SurfaceControl.Builder(surfaceSession)
- .setContainerLayer()
+ .setContainerLayer(true)
.setParent(mSurfaceView.getSurfaceControl())
.setName(DISPLAY_NAME)
.build();
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index f203cda..6e76647 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -502,16 +502,7 @@
}
mWidth = width;
mHeight = height;
- // set this as a buffer layer since we are specifying a buffer size.
- return setFlags(FX_SURFACE_NORMAL, FX_SURFACE_MASK);
- }
-
- /**
- * Set the initial size of the controlled surface's buffers in pixels.
- */
- private void unsetBufferSize() {
- mWidth = 0;
- mHeight = 0;
+ return this;
}
/**
@@ -629,11 +620,16 @@
* Color layers will not have an associated BufferQueue and will instead always render a
* solid color (that is, solid before plane alpha). Currently that color is black.
*
+ * @param isColorLayer Whether to create a color layer.
* @hide
*/
- public Builder setColorLayer() {
- unsetBufferSize();
- return setFlags(FX_SURFACE_DIM, FX_SURFACE_MASK);
+ public Builder setColorLayer(boolean isColorLayer) {
+ if (isColorLayer) {
+ mFlags |= FX_SURFACE_DIM;
+ } else {
+ mFlags &= ~FX_SURFACE_DIM;
+ }
+ return this;
}
private boolean isColorLayerSet() {
@@ -646,11 +642,16 @@
* Container layers will not be rendered in any fashion and instead are used
* as a parent of renderable layers.
*
+ * @param isContainerLayer Whether to create a container layer.
* @hide
*/
- public Builder setContainerLayer() {
- unsetBufferSize();
- return setFlags(FX_SURFACE_CONTAINER, FX_SURFACE_MASK);
+ public Builder setContainerLayer(boolean isContainerLayer) {
+ if (isContainerLayer) {
+ mFlags |= FX_SURFACE_CONTAINER;
+ } else {
+ mFlags &= ~FX_SURFACE_CONTAINER;
+ }
+ return this;
}
private boolean isContainerLayerSet() {
@@ -658,7 +659,7 @@
}
/**
- * Set 'Surface creation flags' such as {@link #HIDDEN}, {@link #SECURE}.
+ * Set 'Surface creation flags' such as {@link HIDDEN}, {@link SECURE}.
*
* TODO: Finish conversion to individual builder methods?
* @param flags The combined flags
@@ -668,11 +669,6 @@
mFlags = flags;
return this;
}
-
- private Builder setFlags(int flags, int mask) {
- mFlags = (mFlags & ~mask) | flags;
- return this;
- }
}
/**
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java
index ecb2ac4..ecbec65 100644
--- a/core/java/android/view/SurfaceView.java
+++ b/core/java/android/view/SurfaceView.java
@@ -33,6 +33,7 @@
import android.graphics.RenderNode;
import android.os.Build;
import android.os.Handler;
+import android.os.IBinder;
import android.os.Looper;
import android.os.SystemClock;
import android.util.AttributeSet;
@@ -587,7 +588,7 @@
mBackgroundControl = new SurfaceControl.Builder(mSurfaceSession)
.setName("Background for -" + name)
.setOpaque(true)
- .setColorLayer()
+ .setColorLayer(true)
.setParent(mSurfaceControl)
.build();
diff --git a/services/core/java/com/android/server/display/ColorFade.java b/services/core/java/com/android/server/display/ColorFade.java
index 0400b56..f2c539c 100644
--- a/services/core/java/com/android/server/display/ColorFade.java
+++ b/services/core/java/com/android/server/display/ColorFade.java
@@ -575,7 +575,7 @@
final SurfaceControl.Builder builder =
new SurfaceControl.Builder(mSurfaceSession).setName("ColorFade");
if (mMode == MODE_FADE) {
- builder.setColorLayer();
+ builder.setColorLayer(true);
} else {
builder.setBufferSize(mDisplayWidth, mDisplayHeight);
}
diff --git a/services/core/java/com/android/server/wm/BlackFrame.java b/services/core/java/com/android/server/wm/BlackFrame.java
index fd72a4a..c90f5bf 100644
--- a/services/core/java/com/android/server/wm/BlackFrame.java
+++ b/services/core/java/com/android/server/wm/BlackFrame.java
@@ -48,7 +48,7 @@
surface = dc.makeOverlay()
.setName("BlackSurface")
- .setColorLayer()
+ .setColorLayer(true)
.setParent(null) // TODO: Work-around for b/69259549
.build();
transaction.setWindowCrop(surface, w, h);
diff --git a/services/core/java/com/android/server/wm/Dimmer.java b/services/core/java/com/android/server/wm/Dimmer.java
index 8f6b67a2..c39060e 100644
--- a/services/core/java/com/android/server/wm/Dimmer.java
+++ b/services/core/java/com/android/server/wm/Dimmer.java
@@ -164,7 +164,7 @@
private SurfaceControl makeDimLayer() {
return mHost.makeChildSurface(null)
.setParent(mHost.getSurfaceControl())
- .setColorLayer()
+ .setColorLayer(true)
.setName("Dim Layer for - " + mHost.getName())
.build();
}
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
index 080f965..df32df0 100644
--- a/services/core/java/com/android/server/wm/DisplayContent.java
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -31,11 +31,14 @@
import static android.view.Display.FLAG_PRIVATE;
import static android.view.Display.INVALID_DISPLAY;
import static android.view.InsetsState.TYPE_IME;
+import static android.view.InsetsState.TYPE_NAVIGATION_BAR;
+import static android.view.InsetsState.TYPE_TOP_BAR;
import static android.view.Surface.ROTATION_0;
import static android.view.Surface.ROTATION_180;
import static android.view.Surface.ROTATION_270;
import static android.view.Surface.ROTATION_90;
import static android.view.View.GONE;
+import static android.view.ViewRootImpl.NEW_INSETS_MODE_FULL;
import static android.view.WindowManager.DOCKED_BOTTOM;
import static android.view.WindowManager.DOCKED_INVALID;
import static android.view.WindowManager.DOCKED_TOP;
@@ -170,6 +173,7 @@
import android.view.SurfaceControl.Transaction;
import android.view.SurfaceSession;
import android.view.View;
+import android.view.ViewRootImpl;
import android.view.WindowManager;
import android.view.WindowManagerPolicyConstants.PointerEventListener;
@@ -892,9 +896,7 @@
mDividerControllerLocked = new DockedStackDividerController(service, this);
mPinnedStackControllerLocked = new PinnedStackController(service, this);
- final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(mSession)
- .setOpaque(true)
- .setContainerLayer();
+ final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(mSession).setOpaque(true);
mWindowingLayer = b.setName("Display Root").build();
mOverlayLayer = b.setName("Display Overlays").build();
@@ -4598,7 +4600,7 @@
@Override
SurfaceControl.Builder makeChildSurface(WindowContainer child) {
SurfaceSession s = child != null ? child.getSession() : getSession();
- final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(s).setContainerLayer();
+ final SurfaceControl.Builder b = mWmService.makeSurfaceBuilder(s);
if (child == null) {
return b;
}
diff --git a/services/core/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java
index 2b2231a..3f77e1c 100644
--- a/services/core/java/com/android/server/wm/DragState.java
+++ b/services/core/java/com/android/server/wm/DragState.java
@@ -164,7 +164,7 @@
if (mInputSurface == null) {
mInputSurface = mService.makeSurfaceBuilder(mService.mRoot.getDisplayContent(displayId)
- .getSession()).setContainerLayer()
+ .getSession()).setContainerLayer(true)
.setName("Drag and Drop Input Consumer").build();
}
final InputWindowHandle h = getInputWindowHandle();
diff --git a/services/core/java/com/android/server/wm/InputConsumerImpl.java b/services/core/java/com/android/server/wm/InputConsumerImpl.java
index ab95e4b..4df5a0b 100644
--- a/services/core/java/com/android/server/wm/InputConsumerImpl.java
+++ b/services/core/java/com/android/server/wm/InputConsumerImpl.java
@@ -22,11 +22,13 @@
import android.os.Process;
import android.os.RemoteException;
import android.os.UserHandle;
-import android.view.InputApplicationHandle;
import android.view.InputChannel;
+import android.view.WindowManager;
+
+import android.view.InputApplicationHandle;
import android.view.InputWindowHandle;
import android.view.SurfaceControl;
-import android.view.WindowManager;
+import android.util.Slog;
import java.io.PrintWriter;
@@ -87,7 +89,7 @@
mWindowHandle.scaleFactor = 1.0f;
mInputSurface = mService.makeSurfaceBuilder(mService.mRoot.getDisplayContent(displayId)
- .getSession()).setContainerLayer().setName("Input Consumer " + name)
+ .getSession()).setContainerLayer(true).setName("Input Consumer " + name)
.build();
}
diff --git a/services/core/java/com/android/server/wm/Letterbox.java b/services/core/java/com/android/server/wm/Letterbox.java
index 18fce67..434084c 100644
--- a/services/core/java/com/android/server/wm/Letterbox.java
+++ b/services/core/java/com/android/server/wm/Letterbox.java
@@ -149,7 +149,7 @@
private void createSurface() {
mSurface = mFactory.get().setName("Letterbox - " + mType)
- .setFlags(HIDDEN).setColorLayer().build();
+ .setFlags(HIDDEN).setColorLayer(true).build();
mSurface.setLayer(-1);
mSurface.setColor(new float[]{0, 0, 0});
}
diff --git a/services/core/java/com/android/server/wm/TaskPositioningController.java b/services/core/java/com/android/server/wm/TaskPositioningController.java
index cdcb857..9163165 100644
--- a/services/core/java/com/android/server/wm/TaskPositioningController.java
+++ b/services/core/java/com/android/server/wm/TaskPositioningController.java
@@ -83,7 +83,7 @@
final DisplayContent dc = mService.mRoot.getDisplayContent(displayId);
if (mInputSurface == null) {
mInputSurface = mService.makeSurfaceBuilder(dc.getSession())
- .setContainerLayer()
+ .setContainerLayer(true)
.setName("Drag and Drop Input Consumer").build();
}
diff --git a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
index 938c8b4..2d3e3ae 100644
--- a/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
+++ b/services/core/java/com/android/server/wm/TaskSnapshotSurface.java
@@ -61,12 +61,12 @@
import android.util.Slog;
import android.view.DisplayCutout;
import android.view.IWindowSession;
-import android.view.InsetsState;
import android.view.Surface;
import android.view.SurfaceControl;
import android.view.SurfaceSession;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
+import android.view.InsetsState;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;
diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java
index 59549e0..bfef1e9 100644
--- a/services/core/java/com/android/server/wm/TaskStack.java
+++ b/services/core/java/com/android/server/wm/TaskStack.java
@@ -818,7 +818,7 @@
updateSurfaceBounds();
if (mAnimationBackgroundSurface == null) {
- mAnimationBackgroundSurface = makeChildSurface(null).setColorLayer()
+ mAnimationBackgroundSurface = makeChildSurface(null).setColorLayer(true)
.setName("animation background stackId=" + mStackId)
.build();
}