Migrate additional FPs to `return` instead of `sk_OutColor`.
These changes cause fewer unnecessary temporary variables to be emitted
in the final gencode and give the optimizer less work to do.
Change-Id: Ied0e83904e2d108382666d18ab733334292e5a63
Bug: skia:10549
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/328838
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
diff --git a/src/gpu/effects/generated/GrCircleEffect.cpp b/src/gpu/effects/generated/GrCircleEffect.cpp
index d1a9391..b8c8ba1 100644
--- a/src/gpu/effects/generated/GrCircleEffect.cpp
+++ b/src/gpu/effects/generated/GrCircleEffect.cpp
@@ -49,18 +49,17 @@
args.fUniformHandler->getUniformCStr(circleVar),
args.fUniformHandler->getUniformCStr(circleVar),
args.fUniformHandler->getUniformCStr(circleVar));
- SkString _sample2509 = this->invokeChild(0, args);
+ SkString _sample2510 = this->invokeChild(0, args);
fragBuilder->codeAppendf(
R"SkSL(
half4 inputColor = %s;
@if (%d == 1 || %d == 3) {
- %s = inputColor * clamp(d, 0.0, 1.0);
+ return inputColor * clamp(d, 0.0, 1.0);
} else {
- %s = d > 0.5 ? inputColor : half4(0.0);
+ return d > 0.5 ? inputColor : half4(0.0);
}
)SkSL",
- _sample2509.c_str(), (int)_outer.edgeType, (int)_outer.edgeType, args.fOutputColor,
- args.fOutputColor);
+ _sample2510.c_str(), (int)_outer.edgeType, (int)_outer.edgeType);
}
private:
@@ -111,7 +110,7 @@
if (radius != that.radius) return false;
return true;
}
-bool GrCircleEffect::usesExplicitReturn() const { return false; }
+bool GrCircleEffect::usesExplicitReturn() const { return true; }
GrCircleEffect::GrCircleEffect(const GrCircleEffect& src)
: INHERITED(kGrCircleEffect_ClassID, src.optimizationFlags())
, edgeType(src.edgeType)