Enable scissor for rounded outline clips

bug:17164074

Change-Id: I83ca428f4d7651c6774ab81ac390477fb90c5d38
diff --git a/libs/hwui/StatefulBaseRenderer.cpp b/libs/hwui/StatefulBaseRenderer.cpp
index 06c5ab4..bdac47b 100644
--- a/libs/hwui/StatefulBaseRenderer.cpp
+++ b/libs/hwui/StatefulBaseRenderer.cpp
@@ -196,12 +196,14 @@
     float radius;
     if (!outline->getAsRoundRect(&bounds, &radius)) return; // only RR supported
 
-    if (!MathUtils::isPositive(radius)) {
+    bool outlineIsRounded = MathUtils::isPositive(radius);
+    if (!outlineIsRounded || currentTransform()->isSimple()) {
         // TODO: consider storing this rect separately, so that this can't be replaced with clip ops
         clipRect(bounds.left, bounds.top, bounds.right, bounds.bottom, SkRegion::kIntersect_Op);
-        return;
     }
-    setClippingRoundRect(allocator, bounds, radius);
+    if (outlineIsRounded) {
+        setClippingRoundRect(allocator, bounds, radius);
+    }
 }
 
 void StatefulBaseRenderer::setClippingRoundRect(LinearAllocator& allocator,