diff --git a/services/surfaceflinger/DisplayDevice.h b/services/surfaceflinger/DisplayDevice.h
index 548cabc..3cf06bc 100644
--- a/services/surfaceflinger/DisplayDevice.h
+++ b/services/surfaceflinger/DisplayDevice.h
@@ -357,10 +357,14 @@
     bool isSecure() const override { return mDevice->isSecure(); }
 
     bool needsFiltering() const override {
+        // check if the projection from the logical display to the physical
+        // display needs filtering
         if (mDevice->needsFiltering()) {
             return true;
         }
 
+        // check if the projection from the logical render area (i.e., the
+        // physical display) to the physical render area requires filtering
         const Rect sourceCrop = getSourceCrop();
         int width = sourceCrop.width();
         int height = sourceCrop.height();
@@ -371,11 +375,17 @@
     }
 
     Rect getSourceCrop() const override {
+        // use the (projected) logical display viewport by default
+        if (mSourceCrop.isEmpty()) {
+            return mDevice->getScissor();
+        }
+
         const int orientation = mDevice->getInstallOrientation();
         if (orientation == DisplayState::eOrientationDefault) {
             return mSourceCrop;
         }
 
+        // Install orientation is transparent to the callers.  Apply it now.
         uint32_t flags = 0x00;
         switch (orientation) {
             case DisplayState::eOrientation90:
@@ -394,6 +404,8 @@
     }
 
 private:
+    // Install orientation is transparent to the callers.  We need to cancel
+    // it out by modifying rotation flags.
     static Transform::orientation_flags getDisplayRotation(
             Transform::orientation_flags rotation, int orientation) {
         if (orientation == DisplayState::eOrientationDefault) {
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index ab2cbe2..58d7765 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -4866,9 +4866,9 @@
         device = getDisplayDeviceLocked(display);
         if (!device) return BAD_VALUE;
 
-        // set the source crop to the (projected) logical display viewport
-        // unconditionally until the framework is fixed
-        sourceCrop.set(device->getScissor());
+        // ignore sourceCrop (i.e., use the projected logical display
+        // viewport) until the framework is fixed
+        sourceCrop.clear();
 
         // set the requested width/height to the logical display viewport size
         // by default
@@ -4876,8 +4876,6 @@
             reqWidth = uint32_t(device->getViewport().width());
             reqHeight = uint32_t(device->getViewport().height());
         }
-
-        // XXX display->getInstallOrientation() is ignored
     }
 
     DisplayRenderArea renderArea(device, sourceCrop, reqWidth, reqHeight, renderAreaRotation);
