Merge "Avoid changing z-order of overlay layer after resizing display" into udc-qpr-dev
diff --git a/services/core/java/com/android/server/wm/Transition.java b/services/core/java/com/android/server/wm/Transition.java
index 5b3bbd5..1b27bb1 100644
--- a/services/core/java/com/android/server/wm/Transition.java
+++ b/services/core/java/com/android/server/wm/Transition.java
@@ -2270,7 +2270,7 @@
             // transitions anyways).
             return wc.getParent().asDisplayContent().getWindowingLayer();
         }
-        return wc.getParent().getSurfaceControl();
+        return wc.getParentSurfaceControl();
     }
 
     /**
diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
index 31afcbf..9806be8 100644
--- a/services/core/java/com/android/server/wm/WindowToken.java
+++ b/services/core/java/com/android/server/wm/WindowToken.java
@@ -388,12 +388,23 @@
     @Override
     SurfaceControl.Builder makeSurface() {
         final SurfaceControl.Builder builder = super.makeSurface();
+        // The overlay may use COLOR_MODE_A8 that needs to be at the top of the display to avoid
+        // additional memory usage, see b/235601833. Note that getParentSurfaceControl() must use
+        // the same parent.
         if (mRoundedCornerOverlay) {
             builder.setParent(null);
         }
         return builder;
     }
 
+    @Override
+    public SurfaceControl getParentSurfaceControl() {
+        if (mRoundedCornerOverlay) {
+            return null;
+        }
+        return super.getParentSurfaceControl();
+    }
+
     boolean isClientVisible() {
         return mClientVisible;
     }