End color analysis early when color becomes unknown
Bug: skia:
Change-Id: Ifce6f002336ccabf19dbaeb3fa8b40eae6acca19
Reviewed-on: https://skia-review.googlesource.com/c/175990
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/ops/GrFillRectOp.cpp b/src/gpu/ops/GrFillRectOp.cpp
index 337d476..15baf8c 100644
--- a/src/gpu/ops/GrFillRectOp.cpp
+++ b/src/gpu/ops/GrFillRectOp.cpp
@@ -168,6 +168,11 @@
// Then combine the colors of any additional quads (e.g. from MakeSet)
for (int i = 1; i < fQuads.count(); ++i) {
quadColors = GrProcessorAnalysisColor::Combine(quadColors, fQuads[i].color());
+ if (quadColors.isUnknown()) {
+ // No point in accumulating additional starting colors, combining cannot make it
+ // less unknown.
+ break;
+ }
}
auto result = fHelper.xpRequiresDstTexture(
caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, &quadColors);