Don't add clipped rects to layer regions.
Bug #3350208

Change-Id: I9266862f1d4d57b4598852e8dfa202b5f5099cce
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 98eb11e..f005573 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -697,12 +697,12 @@
     if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) {
         Rect bounds(left, top, right, bottom);
         transform.mapRect(bounds);
-        bounds.intersect(*mSnapshot->clipRect);
-        bounds.snapToPixelBoundaries();
-
-        android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
-        if (!dirty.isEmpty()) {
-            mSnapshot->region->orSelf(dirty);
+        if (bounds.intersect(*mSnapshot->clipRect)) {
+            bounds.snapToPixelBoundaries();
+            android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
+            if (!dirty.isEmpty()) {
+                mSnapshot->region->orSelf(dirty);
+            }
         }
     }
 #endif
@@ -713,12 +713,12 @@
 #if RENDER_LAYERS_AS_REGIONS
     if ((mSnapshot->flags & Snapshot::kFlagFboTarget) && mSnapshot->region) {
         Rect bounds(left, top, right, bottom);
-        bounds.intersect(*mSnapshot->clipRect);
-        bounds.snapToPixelBoundaries();
-
-        android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
-        if (!dirty.isEmpty()) {
-            mSnapshot->region->orSelf(dirty);
+        if (bounds.intersect(*mSnapshot->clipRect)) {
+            bounds.snapToPixelBoundaries();
+            android::Rect dirty(bounds.left, bounds.top, bounds.right, bounds.bottom);
+            if (!dirty.isEmpty()) {
+                mSnapshot->region->orSelf(dirty);
+            }
         }
     }
 #endif