Cache runtime color filter alpha-unchanged flag on the effect

This reuses the work we're already doing to compute the one-at-a-time
program, and lets us share the result across color filter instances
created from the same effect.

When we added caching of the flag to filter creation, pinpoint found a
performance regression. I expect this to resolve that.

Bug: chromium:1187432
Change-Id: Ie4f8551fa432d298ce950cba8642b9de28f19b81
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/396758
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
diff --git a/tests/SkRuntimeEffectTest.cpp b/tests/SkRuntimeEffectTest.cpp
index 0326ece..23f312d 100644
--- a/tests/SkRuntimeEffectTest.cpp
+++ b/tests/SkRuntimeEffectTest.cpp
@@ -418,19 +418,17 @@
 DEF_TEST(SkRuntimeColorFilterFlags, r) {
     {   // Here's a non-trivial filter that doesn't change alpha.
         auto [effect, err] = SkRuntimeEffect::Make(SkString{
-                "uniform shader input; half4 main() { return sample(input) + half4(1,1,1,0); }"});
+                "half4 main(half4 color) { return color + half4(1,1,1,0); }"});
         REPORTER_ASSERT(r, effect && err.isEmpty());
-        sk_sp<SkColorFilter> input = nullptr,
-                            filter = effect->makeColorFilter(SkData::MakeEmpty(), &input, 1);
+        sk_sp<SkColorFilter> filter = effect->makeColorFilter(SkData::MakeEmpty());
         REPORTER_ASSERT(r, filter && filter->isAlphaUnchanged());
     }
 
     {  // Here's one that definitely changes alpha.
         auto [effect, err] = SkRuntimeEffect::Make(SkString{
-                "uniform shader input; half4 main() { return sample(input) + half4(0,0,0,4); }"});
+                "half4 main(half4 color) { return color + half4(0,0,0,4); }"});
         REPORTER_ASSERT(r, effect && err.isEmpty());
-        sk_sp<SkColorFilter> input = nullptr,
-                            filter = effect->makeColorFilter(SkData::MakeEmpty(), &input, 1);
+        sk_sp<SkColorFilter> filter = effect->makeColorFilter(SkData::MakeEmpty());
         REPORTER_ASSERT(r, filter && !filter->isAlphaUnchanged());
     }
 }