diff --git a/libhwcomposer/hwc_fbupdate.cpp b/libhwcomposer/hwc_fbupdate.cpp
index 86e3e66..7ba2ddc 100644
--- a/libhwcomposer/hwc_fbupdate.cpp
+++ b/libhwcomposer/hwc_fbupdate.cpp
@@ -286,15 +286,6 @@
 
         hwc_rect_t sourceCrop = layer->sourceCrop;
         hwc_rect_t displayFrame = layer->displayFrame;
-        // Do not use getNonWormholeRegion() function to calculate the
-        // sourceCrop during animation on external display.
-        if(ctx->listStats[mDpy].isDisplayAnimating && mDpy) {
-            sourceCrop = layer->displayFrame;
-            displayFrame = sourceCrop;
-        } else if(extOnlyLayerIndex == -1) {
-            getNonWormholeRegion(list, sourceCrop);
-            displayFrame = sourceCrop;
-        }
 
         const float xres = ctx->dpyAttr[mDpy].xres;
         //Default even split for all displays with high res
diff --git a/liboverlay/overlayMdssRot.cpp b/liboverlay/overlayMdssRot.cpp
index b8a2417..95f22c6 100644
--- a/liboverlay/overlayMdssRot.cpp
+++ b/liboverlay/overlayMdssRot.cpp
@@ -256,7 +256,7 @@
             mRotInfo.src.format); //mdss src and dst formats are same.
 
     if (mRotInfo.flags & ovutils::OV_MDSS_MDP_BWC_EN) {
-        opBufSize = calcCompressedBufSize();
+        opBufSize = calcCompressedBufSize(destWhf);
     } else {
         opBufSize = Rotator::calcOutputBufSize(destWhf);
     }
@@ -273,10 +273,10 @@
 }
 
 // Calculate the compressed o/p buffer size for BWC
-uint32_t MdssRot::calcCompressedBufSize() {
+uint32_t MdssRot::calcCompressedBufSize(const ovutils::Whf& destWhf) {
     uint32_t bufSize = 0;
-    int aWidth = ovutils::align(mRotInfo.src_rect.w, 64);
-    int aHeight = ovutils::align(mRotInfo.src_rect.h, 4);
+    int aWidth = ovutils::align(destWhf.w, 64);
+    int aHeight = ovutils::align(destWhf.h, 4);
     int rau_cnt = aWidth/64;
     int stride0 = (64 * 4 * rau_cnt) + rau_cnt/8;
     int stride1 = ((64 * 2 * rau_cnt) + rau_cnt/8) * 2;
diff --git a/liboverlay/overlayRotator.h b/liboverlay/overlayRotator.h
index 7f90160..a600732 100644
--- a/liboverlay/overlayRotator.h
+++ b/liboverlay/overlayRotator.h
@@ -205,7 +205,7 @@
      * knowing the o/p format depending on whether fastYuv is enabled or not */
     uint32_t calcOutputBufSize();
     // Calculate the compressed o/p buffer size for BWC
-    uint32_t calcCompressedBufSize();
+    uint32_t calcCompressedBufSize(const utils::Whf& destWhf);
 
     /* MdssRot info structure */
     mdp_overlay   mRotInfo;
