quick check to not use AutoDrawLooper

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248373004

Review-Url: https://codereview.chromium.org/2248373004
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 3e349ea..ca0bf3c 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -2204,6 +2204,14 @@
     LOOPER_END
 }
 
+static bool needs_autodrawlooper(SkCanvas* canvas, const SkPaint& paint) {
+    return ((intptr_t)paint.getImageFilter()    |
+#ifdef SK_SUPPORT_LEGACY_DRAWFILTER
+            (intptr_t)canvas->getDrawFilter()   |
+#endif
+            (intptr_t)paint.getLooper()         ) != 0;
+}
+
 void SkCanvas::onDrawRect(const SkRect& r, const SkPaint& paint) {
     TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawRect()");
     SkRect storage;
@@ -2220,13 +2228,21 @@
         bounds = &r;
     }
 
-    LOOPER_BEGIN_CHECK_COMPLETE_OVERWRITE(paint, SkDrawFilter::kRect_Type, bounds, false)
+    if (needs_autodrawlooper(this, paint)) {
+        LOOPER_BEGIN_CHECK_COMPLETE_OVERWRITE(paint, SkDrawFilter::kRect_Type, bounds, false)
 
-    while (iter.next()) {
-        iter.fDevice->drawRect(iter, r, looper.paint());
+        while (iter.next()) {
+            iter.fDevice->drawRect(iter, r, looper.paint());
+        }
+
+        LOOPER_END
+    } else {
+        this->predrawNotify(bounds, &paint, false);
+        SkDrawIter iter(this);
+        while (iter.next()) {
+            iter.fDevice->drawRect(iter, r, paint);
+        }
     }
-
-    LOOPER_END
 }
 
 void SkCanvas::onDrawOval(const SkRect& oval, const SkPaint& paint) {