disable LCD for layers w/ filters

BUG=468311

see also skiabug.com/3567

Review URL: https://codereview.chromium.org/1002603003
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 11dc739..8426f09 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -918,10 +918,12 @@
     }
 
     bool isOpaque = !SkToBool(flags & kHasAlphaLayer_SaveFlag);
-    if (isOpaque && paint) {
+    SkPixelGeometry geo = fProps.pixelGeometry();
+    if (paint) {
         // TODO: perhaps add a query to filters so we might preserve opaqueness...
         if (paint->getImageFilter() || paint->getColorFilter()) {
             isOpaque = false;
+            geo = kUnknown_SkPixelGeometry;
         }
     }
     SkImageInfo info = SkImageInfo::MakeN32(ir.width(), ir.height(),
@@ -942,8 +944,7 @@
         usage = SkBaseDevice::kPossible_TileUsage;
     }
 #endif
-    device = device->onCreateDevice(SkBaseDevice::CreateInfo(info, usage, fProps.pixelGeometry()),
-                                    paint);
+    device = device->onCreateDevice(SkBaseDevice::CreateInfo(info, usage, geo), paint);
     if (NULL == device) {
         SkErrorInternals::SetError( kInternalError_SkError,
                                     "Unable to create device for layer.");