Fix optimization flags of GrConvexPolyEffect
We were ignoring the child's flags.
Change-Id: I69a7c625e3ea744c3bb19f0ed56afcb9f33b1c7e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/402647
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/effects/GrConvexPolyEffect.cpp b/src/gpu/effects/GrConvexPolyEffect.cpp
index 9894186..6bc4651 100644
--- a/src/gpu/effects/GrConvexPolyEffect.cpp
+++ b/src/gpu/effects/GrConvexPolyEffect.cpp
@@ -168,8 +168,12 @@
}
GrConvexPolyEffect::GrConvexPolyEffect(std::unique_ptr<GrFragmentProcessor> inputFP,
- GrClipEdgeType edgeType, int n, const SkScalar edges[])
- : INHERITED(kGrConvexPolyEffect_ClassID, kCompatibleWithCoverageAsAlpha_OptimizationFlag)
+ GrClipEdgeType edgeType,
+ int n,
+ const SkScalar edges[])
+ : INHERITED(kGrConvexPolyEffect_ClassID,
+ ProcessorOptimizationFlags(inputFP.get()) &
+ kCompatibleWithCoverageAsAlpha_OptimizationFlag)
, fEdgeType(edgeType)
, fEdgeCount(n) {
// Factory function should have already ensured this.
@@ -185,7 +189,7 @@
}
GrConvexPolyEffect::GrConvexPolyEffect(const GrConvexPolyEffect& that)
- : INHERITED(kGrConvexPolyEffect_ClassID, kCompatibleWithCoverageAsAlpha_OptimizationFlag)
+ : INHERITED(kGrConvexPolyEffect_ClassID, that.optimizationFlags())
, fEdgeType(that.fEdgeType)
, fEdgeCount(that.fEdgeCount) {
this->cloneAndRegisterAllChildProcessors(that);