Revert "Calculate texture clamping X/Y coordinates in parallel."

This reverts commit a38945abe337019886f3b6bdcac4a7e3060870c2.

Reason for revert: Pinpoint says it costs RAM on Mac (?), and doesn't show any visible perf benefit

Original change's description:
> Calculate texture clamping X/Y coordinates in parallel.
> 
> The X and Y values of `clampedCoord`, `extraRepeatCoord`, and `snapped`
> were being calculated and stored separately, even in cases where work
> could easily be done in tandem. Updated the code so that we use .xy when
> it makes sense to do so.
> 
> Change-Id: I10d85670acb4fec960444b3f3c30f2929c6dcaf2
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/318436
> Auto-Submit: John Stiles <johnstiles@google.com>
> Reviewed-by: Brian Salomon <bsalomon@google.com>
> Commit-Queue: Brian Salomon <bsalomon@google.com>
> Commit-Queue: John Stiles <johnstiles@google.com>

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

Change-Id: I10aaba4caeacaa0b081d10cc900044c37f690782
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/319021
Reviewed-by: John Stiles <johnstiles@google.com>
Commit-Queue: John Stiles <johnstiles@google.com>
diff --git a/src/gpu/effects/GrTextureEffect.cpp b/src/gpu/effects/GrTextureEffect.cpp
index a71d330..d62d5ea 100644
--- a/src/gpu/effects/GrTextureEffect.cpp
+++ b/src/gpu/effects/GrTextureEffect.cpp
@@ -479,7 +479,8 @@
                 case ShaderMode::kRepeat_Nearest_None:
                 case ShaderMode::kRepeat_Linear_None:
                     fb->codeAppendf(
-                            "subsetCoord.%s = mod(inCoord.%s - %s.%s, %s.%s - %s.%s) + %s.%s;",
+                            "subsetCoord.%s = mod(inCoord.%s - %s.%s, %s.%s - %s.%s) + "
+                            "%s.%s;",
                             coordSwizzle, coordSwizzle, subsetName, subsetStartSwizzle, subsetName,
                             subsetStopSwizzle, subsetName, subsetStartSwizzle, subsetName,
                             subsetStartSwizzle);
@@ -513,8 +514,10 @@
                     // sample taken using subsetCoord and a sample at extraCoord.
                     fb->codeAppend("float hw = w/2;");
                     fb->codeAppend("float n = mod(d - hw, w2);");
-                    fb->codeAppendf("%s = saturate(half(mix(n, w2 - n, step(w, n)) - hw + 0.5));",
-                                    coordWeight);
+                    fb->codeAppendf(
+                            "%s = saturate(half(mix(n, w2 - n, step(w, n)) - hw + "
+                            "0.5));",
+                            coordWeight);
                     fb->codeAppend("}");
                     break;
                 case ShaderMode::kMirrorRepeat:
@@ -555,17 +558,14 @@
         bool mipmapRepeatY = m[1] == ShaderMode::kRepeat_Nearest_Mipmap ||
                              m[1] == ShaderMode::kRepeat_Linear_Mipmap;
 
-        if (mipmapRepeatX || mipmapRepeatY) {
-            fb->codeAppend("float2 extraRepeatCoord;");
-        }
         if (mipmapRepeatX) {
-            fb->codeAppend("half repeatCoordWeightX;");
-            extraRepeatCoordX   = "extraRepeatCoord.x";
+            fb->codeAppend("float extraRepeatCoordX; half repeatCoordWeightX;");
+            extraRepeatCoordX   = "extraRepeatCoordX";
             repeatCoordWeightX  = "repeatCoordWeightX";
         }
         if (mipmapRepeatY) {
-            fb->codeAppend("half repeatCoordWeightY;");
-            extraRepeatCoordY   = "extraRepeatCoord.y";
+            fb->codeAppend("float extraRepeatCoordY; half repeatCoordWeightY;");
+            extraRepeatCoordY   = "extraRepeatCoordY";
             repeatCoordWeightY  = "repeatCoordWeightY";
         }
 
@@ -574,22 +574,17 @@
         subsetCoord(te.fShaderModes[0], "x", "x", "z", extraRepeatCoordX, repeatCoordWeightX);
         subsetCoord(te.fShaderModes[1], "y", "y", "w", extraRepeatCoordY, repeatCoordWeightY);
         fb->codeAppend("float2 clampedCoord;");
-        if (useClamp[0] == useClamp[1]) {
-            clampCoord(useClamp[0], "xy", "xy", "zw");
-        } else {
-            clampCoord(useClamp[0], "x", "x", "z");
-            clampCoord(useClamp[1], "y", "y", "w");
-        }
+        clampCoord(useClamp[0], "x", "x", "z");
+        clampCoord(useClamp[1], "y", "y", "w");
+
         // Additional clamping for the extra coords for kRepeat with mip maps.
-        if (mipmapRepeatX && mipmapRepeatY) {
-            fb->codeAppendf("extraRepeatCoord = clamp(extraRepeatCoord, %s.xy, %s.zw);",
-                            clampName, clampName);
-        } else if (mipmapRepeatX) {
-            fb->codeAppendf("extraRepeatCoord.x = clamp(extraRepeatCoord.x, %s.x, %s.z);",
-                            clampName, clampName);
-        } else if (mipmapRepeatY) {
-            fb->codeAppendf("extraRepeatCoord.y = clamp(extraRepeatCoord.y, %s.y, %s.w);",
-                            clampName, clampName);
+        if (mipmapRepeatX) {
+            fb->codeAppendf("extraRepeatCoordX = clamp(extraRepeatCoordX, %s.x, %s.z);", clampName,
+                            clampName);
+        }
+        if (mipmapRepeatY) {
+            fb->codeAppendf("extraRepeatCoordY = clamp(extraRepeatCoordY, %s.y, %s.w);", clampName,
+                            clampName);
         }
 
         // Do the 2 or 4 texture reads for kRepeatMipMap and then apply the weight(s)
@@ -602,18 +597,18 @@
                     "       mix(%s, %s, repeatCoordWeightX),"
                     "       repeatCoordWeightY);",
                     read("clampedCoord").c_str(),
-                    read("float2(extraRepeatCoord.x, clampedCoord.y)").c_str(),
-                    read("float2(clampedCoord.x, extraRepeatCoord.y)").c_str(),
-                    read("float2(extraRepeatCoord.x, extraRepeatCoord.y)").c_str());
+                    read("float2(extraRepeatCoordX, clampedCoord.y)").c_str(),
+                    read("float2(clampedCoord.x, extraRepeatCoordY)").c_str(),
+                    read("float2(extraRepeatCoordX, extraRepeatCoordY)").c_str());
 
         } else if (mipmapRepeatX) {
             fb->codeAppendf("half4 textureColor = mix(%s, %s, repeatCoordWeightX);",
                             read("clampedCoord").c_str(),
-                            read("float2(extraRepeatCoord.x, clampedCoord.y)").c_str());
+                            read("float2(extraRepeatCoordX, clampedCoord.y)").c_str());
         } else if (mipmapRepeatY) {
             fb->codeAppendf("half4 textureColor = mix(%s, %s, repeatCoordWeightY);",
                             read("clampedCoord").c_str(),
-                            read("float2(clampedCoord.x, extraRepeatCoord.y)").c_str());
+                            read("float2(clampedCoord.x, extraRepeatCoordY)").c_str());
         } else {
             fb->codeAppendf("half4 textureColor = %s;", read("clampedCoord").c_str());
         }
@@ -690,22 +685,15 @@
         // Do hard-edge shader transition to border color for kClampToBorderNearest at the
         // subset boundaries. Snap the input coordinates to nearest neighbor (with an
         // epsilon) before comparing to the subset rect to avoid GPU interpolation errors
-        if (m[0] == ShaderMode::kClampToBorder_Nearest &&
-            m[1] == ShaderMode::kClampToBorder_Nearest) {
-            fb->codeAppendf(
-                    "float2 snappedXY = floor(inCoord + float2(0.001)) + float2(0.5);"
-                    "if (any(lessThan(snappedXY, %s.xy)) || any(greaterThan(snappedXY, %s.zw))) {"
-                    "    textureColor = %s;"
-                    "}",
-                    subsetName, subsetName, borderName);
-        } else if (m[0] == ShaderMode::kClampToBorder_Nearest) {
+        if (m[0] == ShaderMode::kClampToBorder_Nearest) {
             fb->codeAppendf(
                     "float snappedX = floor(inCoord.x + 0.001) + 0.5;"
                     "if (snappedX < %s.x || snappedX > %s.z) {"
                     "    textureColor = %s;"
                     "}",
                     subsetName, subsetName, borderName);
-        } else if (m[1] == ShaderMode::kClampToBorder_Nearest) {
+        }
+        if (m[1] == ShaderMode::kClampToBorder_Nearest) {
             fb->codeAppendf(
                     "float snappedY = floor(inCoord.y + 0.001) + 0.5;"
                     "if (snappedY < %s.y || snappedY > %s.w) {"
@@ -713,7 +701,6 @@
                     "}",
                     subsetName, subsetName, borderName);
         }
-
         fb->codeAppendf("%s = textureColor;", args.fOutputColor);
     }
 }