diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java
index 021193e..751141b 100644
--- a/core/java/android/view/WindowlessWindowManager.java
+++ b/core/java/android/view/WindowlessWindowManager.java
@@ -361,7 +361,6 @@
         }
 
         t.setPosition(leash, frames.frame.left, frames.frame.top);
-        t.setWindowCrop(leash, frames.frame.width(), frames.frame.height());
 
         if (viewFlags == View.VISIBLE) {
             // TODO(b/262892794) ViewRootImpl modifies the app's rendering SurfaceControl
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index b769f8d..c8dcf09 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -248,6 +248,8 @@
         // Order is important when new and old surfaces are the same, because old surface has
         // its frame stats disabled automatically.
         native_window_enable_frame_timestamps(mNativeSurface->getNativeWindow(), true);
+        native_window_set_scaling_mode(mNativeSurface->getNativeWindow(),
+                                       NATIVE_WINDOW_SCALING_MODE_FREEZE);
     } else {
         mRenderThread.removeFrameCallback(this);
         mGenerationID++;
diff --git a/services/tests/wmtests/src/com/android/server/wm/SurfaceSyncGroupContinuousTest.java b/services/tests/wmtests/src/com/android/server/wm/SurfaceSyncGroupContinuousTest.java
index e6f47a1..eef7cc2 100644
--- a/services/tests/wmtests/src/com/android/server/wm/SurfaceSyncGroupContinuousTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/SurfaceSyncGroupContinuousTest.java
@@ -22,6 +22,7 @@
 
 import android.app.KeyguardManager;
 import android.os.PowerManager;
+import android.platform.test.annotations.Presubmit;
 import android.view.SurfaceControl;
 import android.view.cts.surfacevalidator.CapturedActivity;
 import android.window.SurfaceSyncGroup;
@@ -68,11 +69,23 @@
 
     @Test
     public void testSurfaceControlViewHostIPCSync_Fast() throws Throwable {
-        mCapturedActivity.verifyTest(new SyncValidatorSCVHTestCase(0 /* delayMs */), mName);
+        mCapturedActivity.verifyTest(
+                new SyncValidatorSCVHTestCase(0 /* delayMs */, false /* overrideDefaultDuration */),
+                mName);
     }
 
     @Test
     public void testSurfaceControlViewHostIPCSync_Slow() throws Throwable {
-        mCapturedActivity.verifyTest(new SyncValidatorSCVHTestCase(100 /* delayMs */), mName);
+        mCapturedActivity.verifyTest(new SyncValidatorSCVHTestCase(100 /* delayMs */,
+                false /* overrideDefaultDuration */), mName);
+    }
+
+    @Test
+    @Presubmit
+    public void testSurfaceControlViewHostIPCSync_Short() throws Throwable {
+        mCapturedActivity.setMinimumCaptureDurationMs(5000);
+        mCapturedActivity.verifyTest(
+                new SyncValidatorSCVHTestCase(0 /* delayMs */, true /* overrideDefaultDuration */),
+                mName);
     }
 }
diff --git a/services/tests/wmtests/src/com/android/server/wm/scvh/SyncValidatorSCVHTestCase.java b/services/tests/wmtests/src/com/android/server/wm/scvh/SyncValidatorSCVHTestCase.java
index af4c683c..07dac8d 100644
--- a/services/tests/wmtests/src/com/android/server/wm/scvh/SyncValidatorSCVHTestCase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/scvh/SyncValidatorSCVHTestCase.java
@@ -54,10 +54,12 @@
             new Point(300, 800), new Point(200, 200)};
     private int mLastSizeIndex = 1;
 
-    private long mDelayMs;
+    private final long mDelayMs;
+    private final boolean mOverrideDefaultDuration;
 
-    public SyncValidatorSCVHTestCase(long delayMs) {
+    public SyncValidatorSCVHTestCase(long delayMs, boolean overrideDefaultDuration) {
         mDelayMs = delayMs;
+        mOverrideDefaultDuration = overrideDefaultDuration;
     }
 
     private final Runnable mRunnable = new Runnable() {
@@ -231,4 +233,9 @@
     public void end() {
         mHandler.removeCallbacks(mRunnable);
     }
+
+    @Override
+    public boolean hasAnimation() {
+        return !mOverrideDefaultDuration;
+    }
 }
