Disallow GrTextureDomain::kIgnore_Mode in SkGpuBlurUtils::GaussianBlur.

Use clamp and require a src rect instead.

Precursor to changing over to SkTileMode.

Possible perf regressions until we can incorporate domain optimizations
into effect factories rather than callers.

Make GrRRectBlurRectEffect use approx textures for its input mask
texture.

Change-Id: Id553016133c2fd522b7fa1e9759f176d354aa250
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/264838
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/effects/generated/GrRRectBlurEffect.h b/src/gpu/effects/generated/GrRRectBlurEffect.h
index 94b6ca1..69ac275 100644
--- a/src/gpu/effects/generated/GrRRectBlurEffect.h
+++ b/src/gpu/effects/generated/GrRRectBlurEffect.h
@@ -53,11 +53,8 @@
         sk_sp<GrTextureProxy> mask(proxyProvider->findOrCreateProxyByUniqueKey(
                 key, GrColorType::kAlpha_8, kBottomLeft_GrSurfaceOrigin));
         if (!mask) {
-            // TODO: this could be SkBackingFit::kApprox, but:
-            //   1) The texture coords would need to be updated.
-            //   2) We would have to use GrTextureDomain::kClamp_Mode for the GaussianBlur.
             auto rtc = GrRenderTargetContext::MakeWithFallback(
-                    context, GrColorType::kAlpha_8, nullptr, SkBackingFit::kExact, dimensions);
+                    context, GrColorType::kAlpha_8, nullptr, SkBackingFit::kApprox, dimensions);
             if (!rtc) {
                 return nullptr;
             }
@@ -80,10 +77,10 @@
                                                      SkIPoint::Make(0, 0),
                                                      nullptr,
                                                      SkIRect::MakeSize(dimensions),
-                                                     SkIRect::MakeEmpty(),
+                                                     SkIRect::MakeSize(dimensions),
                                                      xformedSigma,
                                                      xformedSigma,
-                                                     GrTextureDomain::kIgnore_Mode,
+                                                     GrTextureDomain::kClamp_Mode,
                                                      SkBackingFit::kExact);
             if (!rtc2) {
                 return nullptr;