Revert "Allow rect and circle blur fast cases to be used with rotation matrices."

This reverts commit 2bded27a961b4d301f2d8d88829b164fa35714ef.

Reason for revert: Seems to be blocking the Chrome roll

Original change's description:
> Allow rect and circle blur fast cases to be used with rotation matrices.
>
> For circles this is trivial. The existing shader works as is.
>
> For rects this requires back projecting from device space.
>
> Adds a GM for rotated rect blurs and modifies a circle blur GM to add
> rotation.
>
> Bug: chromium:1087705
>
> Change-Id: I6b969552fbcc9f9997cfa061b3a312a5a71e8841
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318757
> Reviewed-by: Robert Phillips <robertphillips@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>

TBR=bsalomon@google.com,robertphillips@google.com

Change-Id: Iafb479f3b3561e226678a3020254c6e76d4ce284
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1087705
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319186
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/effects/generated/GrRectBlurEffect.cpp b/src/gpu/effects/generated/GrRectBlurEffect.cpp
index 887f483..681fe79 100644
--- a/src/gpu/effects/generated/GrRectBlurEffect.cpp
+++ b/src/gpu/effects/generated/GrRectBlurEffect.cpp
@@ -26,10 +26,6 @@
         (void)_outer;
         auto rect = _outer.rect;
         (void)rect;
-        auto applyInvVM = _outer.applyInvVM;
-        (void)applyInvVM;
-        auto invVM = _outer.invVM;
-        (void)invVM;
         auto isFast = _outer.isFast;
         (void)isFast;
         highp = ((abs(rect.left()) > 16000.0 || abs(rect.top()) > 16000.0) ||
@@ -43,102 +39,82 @@
             rectHVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag,
                                                         kHalf4_GrSLType, "rectH");
         }
-        if (applyInvVM) {
-            invVMVar = args.fUniformHandler->addUniform(&_outer, kFragment_GrShaderFlag,
-                                                        kFloat3x3_GrSLType, "invVM");
-        }
         fragBuilder->codeAppendf(
                 R"SkSL(/* key */ bool highp = %s;
 half xCoverage, yCoverage;
-float2 pos = sk_FragCoord.xy;
-@if (%s) {
-    pos = (%s * float3(pos, 1.0)).xy;
-}
 @if (%s) {
     half2 xy;
     @if (highp) {
-        xy = max(half2(%s.xy - pos), half2(pos - %s.zw));
+        xy = max(half2(%s.xy - sk_FragCoord.xy), half2(sk_FragCoord.xy - %s.zw));
     } else {
-        xy = max(half2(float2(%s.xy) - pos), half2(pos - float2(%s.zw)));
+        xy = max(half2(float2(%s.xy) - sk_FragCoord.xy), half2(sk_FragCoord.xy - float2(%s.zw)));
     })SkSL",
-                (highp ? "true" : "false"), (_outer.applyInvVM ? "true" : "false"),
-                invVMVar.isValid() ? args.fUniformHandler->getUniformCStr(invVMVar) : "float3x3(1)",
-                (_outer.isFast ? "true" : "false"),
+                (highp ? "true" : "false"), (_outer.isFast ? "true" : "false"),
                 rectFVar.isValid() ? args.fUniformHandler->getUniformCStr(rectFVar) : "float4(0)",
                 rectFVar.isValid() ? args.fUniformHandler->getUniformCStr(rectFVar) : "float4(0)",
                 rectHVar.isValid() ? args.fUniformHandler->getUniformCStr(rectHVar) : "half4(0)",
                 rectHVar.isValid() ? args.fUniformHandler->getUniformCStr(rectHVar) : "half4(0)");
-        SkString _coords8314("float2(half2(xy.x, 0.5))");
-        SkString _sample8314 = this->invokeChild(1, args, _coords8314.c_str());
+        SkString _coords6340("float2(half2(xy.x, 0.5))");
+        SkString _sample6340 = this->invokeChild(1, args, _coords6340.c_str());
         fragBuilder->codeAppendf(
                 R"SkSL(
     xCoverage = %s.w;)SkSL",
-                _sample8314.c_str());
-        SkString _coords8372("float2(half2(xy.y, 0.5))");
-        SkString _sample8372 = this->invokeChild(1, args, _coords8372.c_str());
+                _sample6340.c_str());
+        SkString _coords6398("float2(half2(xy.y, 0.5))");
+        SkString _sample6398 = this->invokeChild(1, args, _coords6398.c_str());
         fragBuilder->codeAppendf(
                 R"SkSL(
     yCoverage = %s.w;
 } else {
     half4 rect;
     @if (highp) {
-        rect.xy = half2(%s.xy - pos);
-        rect.zw = half2(pos - %s.zw);
+        rect.xy = half2(%s.xy - sk_FragCoord.xy);
+        rect.zw = half2(sk_FragCoord.xy - %s.zw);
     } else {
-        rect.xy = half2(float2(%s.xy) - pos);
-        rect.zw = half2(pos - float2(%s.zw));
+        rect.xy = half2(float2(%s.xy) - sk_FragCoord.xy);
+        rect.zw = half2(sk_FragCoord.xy - float2(%s.zw));
     })SkSL",
-                _sample8372.c_str(),
+                _sample6398.c_str(),
                 rectFVar.isValid() ? args.fUniformHandler->getUniformCStr(rectFVar) : "float4(0)",
                 rectFVar.isValid() ? args.fUniformHandler->getUniformCStr(rectFVar) : "float4(0)",
                 rectHVar.isValid() ? args.fUniformHandler->getUniformCStr(rectHVar) : "half4(0)",
                 rectHVar.isValid() ? args.fUniformHandler->getUniformCStr(rectHVar) : "half4(0)");
-        SkString _coords9691("float2(half2(rect.x, 0.5))");
-        SkString _sample9691 = this->invokeChild(1, args, _coords9691.c_str());
-        SkString _coords9754("float2(half2(rect.z, 0.5))");
-        SkString _sample9754 = this->invokeChild(1, args, _coords9754.c_str());
+        SkString _coords7765("float2(half2(rect.x, 0.5))");
+        SkString _sample7765 = this->invokeChild(1, args, _coords7765.c_str());
+        SkString _coords7828("float2(half2(rect.z, 0.5))");
+        SkString _sample7828 = this->invokeChild(1, args, _coords7828.c_str());
         fragBuilder->codeAppendf(
                 R"SkSL(
     xCoverage = (1.0 - %s.w) - %s.w;)SkSL",
-                _sample9691.c_str(), _sample9754.c_str());
-        SkString _coords9818("float2(half2(rect.y, 0.5))");
-        SkString _sample9818 = this->invokeChild(1, args, _coords9818.c_str());
-        SkString _coords9881("float2(half2(rect.w, 0.5))");
-        SkString _sample9881 = this->invokeChild(1, args, _coords9881.c_str());
+                _sample7765.c_str(), _sample7828.c_str());
+        SkString _coords7892("float2(half2(rect.y, 0.5))");
+        SkString _sample7892 = this->invokeChild(1, args, _coords7892.c_str());
+        SkString _coords7955("float2(half2(rect.w, 0.5))");
+        SkString _sample7955 = this->invokeChild(1, args, _coords7955.c_str());
         fragBuilder->codeAppendf(
                 R"SkSL(
     yCoverage = (1.0 - %s.w) - %s.w;
 })SkSL",
-                _sample9818.c_str(), _sample9881.c_str());
-        SkString _sample9950 = this->invokeChild(0, args);
+                _sample7892.c_str(), _sample7955.c_str());
+        SkString _sample8024 = this->invokeChild(0, args);
         fragBuilder->codeAppendf(
                 R"SkSL(
 half4 inputColor = %s;
 %s = (inputColor * xCoverage) * yCoverage;
 )SkSL",
-                _sample9950.c_str(), args.fOutputColor);
+                _sample8024.c_str(), args.fOutputColor);
     }
 
 private:
     void onSetData(const GrGLSLProgramDataManager& pdman,
                    const GrFragmentProcessor& _proc) override {
         const GrRectBlurEffect& _outer = _proc.cast<GrRectBlurEffect>();
-        {
-            if (invVMVar.isValid()) {
-                static_assert(1 == 1);
-                pdman.setSkMatrix(invVMVar, (_outer.invVM));
-            }
-        }
         auto rect = _outer.rect;
         (void)rect;
         UniformHandle& rectF = rectFVar;
         (void)rectF;
         UniformHandle& rectH = rectHVar;
         (void)rectH;
-        auto applyInvVM = _outer.applyInvVM;
-        (void)applyInvVM;
-        UniformHandle& invVM = invVMVar;
-        (void)invVM;
         auto isFast = _outer.isFast;
         (void)isFast;
 
@@ -148,7 +124,6 @@
     bool highp = false;
     UniformHandle rectFVar;
     UniformHandle rectHVar;
-    UniformHandle invVMVar;
 };
 GrGLSLFragmentProcessor* GrRectBlurEffect::onCreateGLSLInstance() const {
     return new GrGLSLRectBlurEffect();
@@ -159,15 +134,12 @@
                   abs(rect.right()) > 16000.0) ||
                  abs(rect.bottom()) > 16000.0;
     b->add32((uint32_t)highp);
-    b->add32((uint32_t)applyInvVM);
     b->add32((uint32_t)isFast);
 }
 bool GrRectBlurEffect::onIsEqual(const GrFragmentProcessor& other) const {
     const GrRectBlurEffect& that = other.cast<GrRectBlurEffect>();
     (void)that;
     if (rect != that.rect) return false;
-    if (applyInvVM != that.applyInvVM) return false;
-    if (invVM != that.invVM) return false;
     if (isFast != that.isFast) return false;
     return true;
 }
@@ -175,8 +147,6 @@
 GrRectBlurEffect::GrRectBlurEffect(const GrRectBlurEffect& src)
         : INHERITED(kGrRectBlurEffect_ClassID, src.optimizationFlags())
         , rect(src.rect)
-        , applyInvVM(src.applyInvVM)
-        , invVM(src.invVM)
         , isFast(src.isFast) {
     this->cloneAndRegisterAllChildProcessors(src);
 }
@@ -185,26 +155,17 @@
 }
 #if GR_TEST_UTILS
 SkString GrRectBlurEffect::onDumpInfo() const {
-    return SkStringPrintf(
-            "(rect=float4(%f, %f, %f, %f), applyInvVM=%s, invVM=float3x3(%f, %f, %f, %f, %f, %f, "
-            "%f, %f, %f), isFast=%s)",
-            rect.left(), rect.top(), rect.right(), rect.bottom(), (applyInvVM ? "true" : "false"),
-            invVM.rc(0, 0), invVM.rc(1, 0), invVM.rc(2, 0), invVM.rc(0, 1), invVM.rc(1, 1),
-            invVM.rc(2, 1), invVM.rc(0, 2), invVM.rc(1, 2), invVM.rc(2, 2),
-            (isFast ? "true" : "false"));
+    return SkStringPrintf("(rect=float4(%f, %f, %f, %f), isFast=%s)", rect.left(), rect.top(),
+                          rect.right(), rect.bottom(), (isFast ? "true" : "false"));
 }
 #endif
 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrRectBlurEffect);
 #if GR_TEST_UTILS
 std::unique_ptr<GrFragmentProcessor> GrRectBlurEffect::TestCreate(GrProcessorTestData* data) {
     float sigma = data->fRandom->nextRangeF(3, 8);
-    int x = data->fRandom->nextRangeF(1, 200);
-    int y = data->fRandom->nextRangeF(1, 200);
     float width = data->fRandom->nextRangeF(200, 300);
     float height = data->fRandom->nextRangeF(200, 300);
-    SkMatrix vm = GrTest::TestMatrixPreservesRightAngles(data->fRandom);
-    auto rect = SkRect::MakeXYWH(x, y, width, height);
     return GrRectBlurEffect::Make(data->inputFP(), data->context(), *data->caps()->shaderCaps(),
-                                  rect, vm, sigma);
+                                  SkRect::MakeWH(width, height), sigma);
 }
 #endif