From 532b3f944a4991064963aee8f535c695f4068368 Mon Sep 17 00:00:00 2001 From: Brian Osman Date: Wed, 11 Jul 2018 10:02:07 -0400 Subject: Remove clamping of kPlus with F16 configs The most common use-case for F16 is to draw things that are explicitly outside of [0,1]. We can't prevent out-of-range values in general, users could just draw out-of-range content in src mode. We've decided that it's best to avoid surprising behavior, and trust the user in these situations. This effectively reverts https://skia-review.googlesource.com/c/skia/+/48183 Bug: skia: Change-Id: I71c2dd925c567e2862d96ab70c752f19245a69c4 Reviewed-on: https://skia-review.googlesource.com/140500 Reviewed-by: Mike Klein Reviewed-by: Brian Salomon Commit-Queue: Brian Osman --- gm/beziereffects.cpp | 5 ++- gm/convexpolyeffect.cpp | 5 ++- include/private/GrTypesPriv.h | 43 ----------------------- samplecode/SampleCCPRGeometry.cpp | 3 +- src/atlastext/SkAtlasTextTarget.cpp | 2 +- src/gpu/GrProcessorSet.cpp | 8 ++--- src/gpu/GrProcessorSet.h | 3 +- src/gpu/GrRenderTargetContext.cpp | 5 +-- src/gpu/GrXferProcessor.cpp | 13 +++---- src/gpu/GrXferProcessor.h | 12 +++---- src/gpu/ccpr/GrCCDrawPathsOp.cpp | 5 ++- src/gpu/ccpr/GrCCDrawPathsOp.h | 3 +- src/gpu/ccpr/GrCCPerFlushResources.cpp | 5 +-- src/gpu/effects/GrCoverageSetOpXP.cpp | 3 +- src/gpu/effects/GrCoverageSetOpXP.h | 6 ++-- src/gpu/effects/GrCustomXfermode.cpp | 11 +++--- src/gpu/effects/GrDisableColorXP.cpp | 3 +- src/gpu/effects/GrDisableColorXP.h | 6 ++-- src/gpu/effects/GrPorterDuffXferProcessor.cpp | 23 ++++-------- src/gpu/effects/GrPorterDuffXferProcessor.h | 9 ++--- src/gpu/ops/GrAAConvexPathRenderer.cpp | 6 ++-- src/gpu/ops/GrAAFillRectOp.cpp | 5 ++- src/gpu/ops/GrAAHairLinePathRenderer.cpp | 7 ++-- src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp | 6 ++-- src/gpu/ops/GrAAStrokeRectOp.cpp | 6 ++-- src/gpu/ops/GrAtlasTextOp.cpp | 6 ++-- src/gpu/ops/GrAtlasTextOp.h | 3 +- src/gpu/ops/GrDashOp.cpp | 6 ++-- src/gpu/ops/GrDefaultPathRenderer.cpp | 5 ++- src/gpu/ops/GrDrawAtlasOp.cpp | 7 ++-- src/gpu/ops/GrDrawAtlasOp.h | 3 +- src/gpu/ops/GrDrawOp.h | 3 +- src/gpu/ops/GrDrawPathOp.h | 10 +++--- src/gpu/ops/GrDrawVerticesOp.cpp | 7 ++-- src/gpu/ops/GrDrawVerticesOp.h | 3 +- src/gpu/ops/GrLatticeOp.cpp | 5 ++- src/gpu/ops/GrNonAAFillRectOp.cpp | 12 +++---- src/gpu/ops/GrNonAAStrokeRectOp.cpp | 7 ++-- src/gpu/ops/GrOvalOpFactory.cpp | 42 ++++++++++------------ src/gpu/ops/GrRegionOp.cpp | 7 ++-- src/gpu/ops/GrShadowRRectOp.cpp | 3 +- src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp | 12 +++---- src/gpu/ops/GrSimpleMeshDrawOpHelper.h | 2 -- src/gpu/ops/GrSmallPathRenderer.cpp | 6 ++-- src/gpu/ops/GrTessellatingPathRenderer.cpp | 5 ++- src/gpu/ops/GrTextureOp.cpp | 3 +- tests/DrawOpAtlasTest.cpp | 2 +- tests/GrMeshTest.cpp | 3 +- tests/GrPipelineDynamicStateTest.cpp | 3 +- tests/GrPorterDuffTest.cpp | 21 ++++------- tests/LazyProxyTest.cpp | 9 ++--- tests/OnFlushCallbackTest.cpp | 7 ++-- tests/PrimitiveProcessorTest.cpp | 3 +- tests/ProcessorTest.cpp | 5 ++- 54 files changed, 138 insertions(+), 275 deletions(-) diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp index 9f3bcd74ec..d3af3db802 100644 --- a/gm/beziereffects.cpp +++ b/gm/beziereffects.cpp @@ -29,10 +29,9 @@ class BezierTestOp : public GrMeshDrawOp { public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { auto analysis = fProcessorSet.finalize(fColor, GrProcessorAnalysisCoverage::kSingleChannel, - clip, false, caps, dstIsClamped, &fColor); + clip, false, caps, &fColor); return analysis.requiresDstTexture() ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; } diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp index 3c825dc78a..78dcfe1add 100644 --- a/gm/convexpolyeffect.cpp +++ b/gm/convexpolyeffect.cpp @@ -58,10 +58,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { auto analysis = fProcessors.finalize(fColor, GrProcessorAnalysisCoverage::kNone, clip, - false, caps, dstIsClamped, &fColor); + false, caps, &fColor); return analysis.requiresDstTexture() ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; } diff --git a/include/private/GrTypesPriv.h b/include/private/GrTypesPriv.h index 1c2af04a0a..1490574193 100644 --- a/include/private/GrTypesPriv.h +++ b/include/private/GrTypesPriv.h @@ -282,15 +282,6 @@ enum class GrAllowMixedSamples : bool { kNo = false, kYes = true }; GrAAType GrChooseAAType(GrAA, GrFSAAType, GrAllowMixedSamples, const GrCaps&); -/** - * Some pixel configs are inherently clamped to [0,1], while others can hold values outside of that - * range. This is important for blending - the latter category may require manual clamping. - */ -enum class GrPixelConfigIsClamped : bool { - kNo = false, // F16 or F32 - kYes = true, // Any UNORM type -}; - /** * Types of shader-language-specific boxed variables we can create. (Currently only GrGLShaderVars, * but should be applicable to other shader languages.) @@ -1075,35 +1066,6 @@ static inline bool GrPixelConfigIsAlphaOnly(GrPixelConfig config) { return false; } -static inline bool GrPixelConfigIsFloatingPoint(GrPixelConfig config) { - switch (config) { - case kRGBA_float_GrPixelConfig: - case kRG_float_GrPixelConfig: - case kAlpha_half_GrPixelConfig: - case kAlpha_half_as_Red_GrPixelConfig: - case kRGBA_half_GrPixelConfig: - return true; - case kUnknown_GrPixelConfig: - case kAlpha_8_GrPixelConfig: - case kAlpha_8_as_Alpha_GrPixelConfig: - case kAlpha_8_as_Red_GrPixelConfig: - case kGray_8_GrPixelConfig: - case kGray_8_as_Lum_GrPixelConfig: - case kGray_8_as_Red_GrPixelConfig: - case kRGB_565_GrPixelConfig: - case kRGBA_4444_GrPixelConfig: - case kRGBA_8888_GrPixelConfig: - case kRGB_888_GrPixelConfig: - case kBGRA_8888_GrPixelConfig: - case kSRGBA_8888_GrPixelConfig: - case kSBGRA_8888_GrPixelConfig: - case kRGBA_1010102_GrPixelConfig: - return false; - } - SK_ABORT("Invalid pixel config"); - return false; -} - /** * Precision qualifier that should be used with a sampler. */ @@ -1137,11 +1099,6 @@ static inline GrSLPrecision GrSLSamplerPrecision(GrPixelConfig config) { return kHigh_GrSLPrecision; } -static inline GrPixelConfigIsClamped GrGetPixelConfigIsClamped(GrPixelConfig config) { - return GrPixelConfigIsFloatingPoint(config) ? GrPixelConfigIsClamped::kNo - : GrPixelConfigIsClamped::kYes; -} - /** * Like SkColorType this describes a layout of pixel data in CPU memory. It specifies the channels, * their type, and width. This exists so that the GPU backend can have private types that have no diff --git a/samplecode/SampleCCPRGeometry.cpp b/samplecode/SampleCCPRGeometry.cpp index 13cc0a0690..576325337a 100644 --- a/samplecode/SampleCCPRGeometry.cpp +++ b/samplecode/SampleCCPRGeometry.cpp @@ -86,8 +86,7 @@ public: private: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } bool onCombineIfPossible(GrOp* other, const GrCaps& caps) override { return false; } diff --git a/src/atlastext/SkAtlasTextTarget.cpp b/src/atlastext/SkAtlasTextTarget.cpp index f4cda548af..c70e47995a 100644 --- a/src/atlastext/SkAtlasTextTarget.cpp +++ b/src/atlastext/SkAtlasTextTarget.cpp @@ -202,7 +202,7 @@ void GrAtlasTextOp::finalizeForTextTarget(uint32_t color, const GrCaps& caps) { for (int i = 0; i < fGeoCount; ++i) { fGeoData[i].fColor = color; } - this->finalize(caps, nullptr /* applied clip */, GrPixelConfigIsClamped::kNo); + this->finalize(caps, nullptr /* applied clip */); } void GrAtlasTextOp::executeForTextTarget(SkAtlasTextTarget* target) { diff --git a/src/gpu/GrProcessorSet.cpp b/src/gpu/GrProcessorSet.cpp index 919ff47e3f..e4da038e3b 100644 --- a/src/gpu/GrProcessorSet.cpp +++ b/src/gpu/GrProcessorSet.cpp @@ -159,9 +159,7 @@ bool GrProcessorSet::operator==(const GrProcessorSet& that) const { GrProcessorSet::Analysis GrProcessorSet::finalize(const GrProcessorAnalysisColor& colorInput, const GrProcessorAnalysisCoverage coverageInput, const GrAppliedClip* clip, bool isMixedSamples, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped, - GrColor* overrideInputColor) { + const GrCaps& caps, GrColor* overrideInputColor) { SkASSERT(!this->isFinalized()); SkASSERT(!fFragmentProcessorOffset); @@ -207,7 +205,7 @@ GrProcessorSet::Analysis GrProcessorSet::finalize(const GrProcessorAnalysisColor } GrXPFactory::AnalysisProperties props = GrXPFactory::GetAnalysisProperties( - this->xpFactory(), colorAnalysis.outputColor(), outputCoverage, caps, dstIsClamped); + this->xpFactory(), colorAnalysis.outputColor(), outputCoverage, caps); if (!this->numCoverageFragmentProcessors() && GrProcessorAnalysisCoverage::kNone == coverageInput) { analysis.fCanCombineOverlappedStencilAndCover = SkToBool( @@ -241,7 +239,7 @@ GrProcessorSet::Analysis GrProcessorSet::finalize(const GrProcessorAnalysisColor fColorFragmentProcessorCnt -= colorFPsToEliminate; auto xp = GrXPFactory::MakeXferProcessor(this->xpFactory(), colorAnalysis.outputColor(), - outputCoverage, isMixedSamples, caps, dstIsClamped); + outputCoverage, isMixedSamples, caps); fXP.fProcessor = xp.release(); fFlags |= kFinalized_Flag; diff --git a/src/gpu/GrProcessorSet.h b/src/gpu/GrProcessorSet.h index b61980b405..05d0a59ab2 100644 --- a/src/gpu/GrProcessorSet.h +++ b/src/gpu/GrProcessorSet.h @@ -141,8 +141,7 @@ public: */ Analysis finalize(const GrProcessorAnalysisColor& colorInput, const GrProcessorAnalysisCoverage coverageInput, const GrAppliedClip*, - bool isMixedSamples, const GrCaps&, GrPixelConfigIsClamped, - GrColor* inputColorOverride); + bool isMixedSamples, const GrCaps&, GrColor* inputColorOverride); bool isFinalized() const { return SkToBool(kFinalized_Flag & fFlags); } diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp index 51c9a85f02..058d48e49e 100644 --- a/src/gpu/GrRenderTargetContext.cpp +++ b/src/gpu/GrRenderTargetContext.cpp @@ -1763,11 +1763,8 @@ uint32_t GrRenderTargetContext::addDrawOp(const GrClip& clip, std::unique_ptrsetNeedsStencil(); } - GrPixelConfigIsClamped dstIsClamped = - GrGetPixelConfigIsClamped(this->colorSpaceInfo().config()); GrXferProcessor::DstProxy dstProxy; - if (GrDrawOp::RequiresDstTexture::kYes == op->finalize(*this->caps(), &appliedClip, - dstIsClamped)) { + if (GrDrawOp::RequiresDstTexture::kYes == op->finalize(*this->caps(), &appliedClip)) { if (!this->setupDstProxy(this->asRenderTargetProxy(), clip, op->bounds(), &dstProxy)) { fContext->contextPriv().opMemoryPool()->release(std::move(op)); return SK_InvalidUniqueID; diff --git a/src/gpu/GrXferProcessor.cpp b/src/gpu/GrXferProcessor.cpp index 341b05a0c5..a008e98745 100644 --- a/src/gpu/GrXferProcessor.cpp +++ b/src/gpu/GrXferProcessor.cpp @@ -160,14 +160,12 @@ GrXPFactory::AnalysisProperties GrXPFactory::GetAnalysisProperties( const GrXPFactory* factory, const GrProcessorAnalysisColor& color, const GrProcessorAnalysisCoverage& coverage, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped) { + const GrCaps& caps) { AnalysisProperties result; if (factory) { - result = factory->analysisProperties(color, coverage, caps, dstIsClamped); + result = factory->analysisProperties(color, coverage, caps); } else { - result = GrPorterDuffXPFactory::SrcOverAnalysisProperties(color, coverage, caps, - dstIsClamped); + result = GrPorterDuffXPFactory::SrcOverAnalysisProperties(color, coverage, caps); } SkASSERT(!(result & AnalysisProperties::kRequiresDstTexture)); if ((result & AnalysisProperties::kReadsDstInShader) && @@ -184,11 +182,10 @@ sk_sp GrXPFactory::MakeXferProcessor(const GrXPFactory* f const GrProcessorAnalysisColor& color, GrProcessorAnalysisCoverage coverage, bool hasMixedSamples, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped) { + const GrCaps& caps) { SkASSERT(!hasMixedSamples || caps.shaderCaps()->dualSourceBlendingSupport()); if (factory) { - return factory->makeXferProcessor(color, coverage, hasMixedSamples, caps, dstIsClamped); + return factory->makeXferProcessor(color, coverage, hasMixedSamples, caps); } else { return GrPorterDuffXPFactory::MakeSrcOverXferProcessor(color, coverage, hasMixedSamples, caps); diff --git a/src/gpu/GrXferProcessor.h b/src/gpu/GrXferProcessor.h index 5ede1ae828..6d803338ac 100644 --- a/src/gpu/GrXferProcessor.h +++ b/src/gpu/GrXferProcessor.h @@ -292,14 +292,12 @@ public: const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped); + const GrCaps& caps); static AnalysisProperties GetAnalysisProperties(const GrXPFactory*, const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, - const GrCaps&, - GrPixelConfigIsClamped); + const GrCaps&); protected: constexpr GrXPFactory() {} @@ -308,8 +306,7 @@ private: virtual sk_sp makeXferProcessor(const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps&, - GrPixelConfigIsClamped) const = 0; + const GrCaps&) const = 0; /** * Subclass analysis implementation. This should not return kNeedsDstInTexture as that will be @@ -317,8 +314,7 @@ private: */ virtual AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, - const GrCaps&, - GrPixelConfigIsClamped) const = 0; + const GrCaps&) const = 0; }; #if defined(__GNUC__) #pragma GCC diagnostic pop diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.cpp b/src/gpu/ccpr/GrCCDrawPathsOp.cpp index 042a45bb4e..2d250deb00 100644 --- a/src/gpu/ccpr/GrCCDrawPathsOp.cpp +++ b/src/gpu/ccpr/GrCCDrawPathsOp.cpp @@ -109,12 +109,11 @@ GrCCDrawPathsOp::SingleDraw::~SingleDraw() { } GrDrawOp::RequiresDstTexture GrCCDrawPathsOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) { + const GrAppliedClip* clip) { SkASSERT(1 == fNumDraws); // There should only be one single path draw in this Op right now. GrProcessorSet::Analysis analysis = fProcessors.finalize(fDraws.head().fColor, GrProcessorAnalysisCoverage::kSingleChannel, - clip, false, caps, dstIsClamped, &fDraws.head().fColor); + clip, false, caps, &fDraws.head().fColor); return RequiresDstTexture(analysis.requiresDstTexture()); } diff --git a/src/gpu/ccpr/GrCCDrawPathsOp.h b/src/gpu/ccpr/GrCCDrawPathsOp.h index 9509bb8a07..9ef317f759 100644 --- a/src/gpu/ccpr/GrCCDrawPathsOp.h +++ b/src/gpu/ccpr/GrCCDrawPathsOp.h @@ -36,8 +36,7 @@ public: const char* name() const override { return "GrCCDrawPathsOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override; + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override; bool onCombineIfPossible(GrOp*, const GrCaps&) override; void visitProxies(const VisitProxyFunc& fn) const override { fProcessors.visitProxies(fn); } void onPrepare(GrOpFlushState*) override {} diff --git a/src/gpu/ccpr/GrCCPerFlushResources.cpp b/src/gpu/ccpr/GrCCPerFlushResources.cpp index dd0bf1b473..bc586be85e 100644 --- a/src/gpu/ccpr/GrCCPerFlushResources.cpp +++ b/src/gpu/ccpr/GrCCPerFlushResources.cpp @@ -24,8 +24,9 @@ namespace { class AtlasOp : public GrDrawOp { public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { return RequiresDstTexture::kNo; } + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { + return RequiresDstTexture::kNo; + } bool onCombineIfPossible(GrOp* other, const GrCaps&) override { SK_ABORT("Only expected one Op per CCPR atlas."); return true; diff --git a/src/gpu/effects/GrCoverageSetOpXP.cpp b/src/gpu/effects/GrCoverageSetOpXP.cpp index 2524c9c298..e7ac874c2b 100644 --- a/src/gpu/effects/GrCoverageSetOpXP.cpp +++ b/src/gpu/effects/GrCoverageSetOpXP.cpp @@ -211,8 +211,7 @@ sk_sp GrCoverageSetOpXPFactory::makeXferProcessor( const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped) const { + const GrCaps& caps) const { // We don't support inverting coverage with mixed samples. We don't expect to ever want this in // the future, however we could at some point make this work using an inverted coverage // modulation table. Note that an inverted table still won't work if there are coverage procs. diff --git a/src/gpu/effects/GrCoverageSetOpXP.h b/src/gpu/effects/GrCoverageSetOpXP.h index cf91848944..e8bc5a223f 100644 --- a/src/gpu/effects/GrCoverageSetOpXP.h +++ b/src/gpu/effects/GrCoverageSetOpXP.h @@ -37,13 +37,11 @@ private: sk_sp makeXferProcessor(const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps&, - GrPixelConfigIsClamped) const override; + const GrCaps&) const override; AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, - const GrCaps&, - GrPixelConfigIsClamped) const override { + const GrCaps&) const override { return AnalysisProperties::kIgnoresInputColor; } diff --git a/src/gpu/effects/GrCustomXfermode.cpp b/src/gpu/effects/GrCustomXfermode.cpp index bdeda9467c..5c352604c6 100644 --- a/src/gpu/effects/GrCustomXfermode.cpp +++ b/src/gpu/effects/GrCustomXfermode.cpp @@ -217,13 +217,11 @@ private: sk_sp makeXferProcessor(const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps&, - GrPixelConfigIsClamped) const override; + const GrCaps&) const override; AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, - const GrCaps&, - GrPixelConfigIsClamped) const override; + const GrCaps&) const override; GR_DECLARE_XP_FACTORY_TEST @@ -243,8 +241,7 @@ sk_sp CustomXPFactory::makeXferProcessor( const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage coverage, bool hasMixedSamples, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped) const { + const GrCaps& caps) const { SkASSERT(GrCustomXfermode::IsSupportedMode(fMode)); if (can_use_hw_blend_equation(fHWBlendEquation, coverage, caps)) { return sk_sp(new CustomXP(fMode, fHWBlendEquation)); @@ -254,7 +251,7 @@ sk_sp CustomXPFactory::makeXferProcessor( GrXPFactory::AnalysisProperties CustomXPFactory::analysisProperties( const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage& coverage, - const GrCaps& caps, GrPixelConfigIsClamped dstIsClamped) const { + const GrCaps& caps) const { /* The general SVG blend equation is defined in the spec as follows: diff --git a/src/gpu/effects/GrDisableColorXP.cpp b/src/gpu/effects/GrDisableColorXP.cpp index 314be6ee13..3f9f71e314 100644 --- a/src/gpu/effects/GrDisableColorXP.cpp +++ b/src/gpu/effects/GrDisableColorXP.cpp @@ -79,8 +79,7 @@ sk_sp GrDisableColorXPFactory::makeXferProcessor( const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped) const { + const GrCaps& caps) const { return sk_sp(new DisableColorXP); } diff --git a/src/gpu/effects/GrDisableColorXP.h b/src/gpu/effects/GrDisableColorXP.h index 0c4f5cf2bb..d15f9525c8 100644 --- a/src/gpu/effects/GrDisableColorXP.h +++ b/src/gpu/effects/GrDisableColorXP.h @@ -30,8 +30,7 @@ private: AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, - const GrCaps&, - GrPixelConfigIsClamped) const override { + const GrCaps&) const override { return AnalysisProperties::kCompatibleWithAlphaAsCoverage | AnalysisProperties::kIgnoresInputColor; } @@ -39,8 +38,7 @@ private: sk_sp makeXferProcessor(const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps&, - GrPixelConfigIsClamped) const override; + const GrCaps&) const override; GR_DECLARE_XP_FACTORY_TEST diff --git a/src/gpu/effects/GrPorterDuffXferProcessor.cpp b/src/gpu/effects/GrPorterDuffXferProcessor.cpp index ca082603de..89f61ecd1f 100644 --- a/src/gpu/effects/GrPorterDuffXferProcessor.cpp +++ b/src/gpu/effects/GrPorterDuffXferProcessor.cpp @@ -759,7 +759,7 @@ const GrXPFactory* GrPorterDuffXPFactory::Get(SkBlendMode blendMode) { sk_sp GrPorterDuffXPFactory::makeXferProcessor( const GrProcessorAnalysisColor& color, GrProcessorAnalysisCoverage coverage, - bool hasMixedSamples, const GrCaps& caps, GrPixelConfigIsClamped dstIsClamped) const { + bool hasMixedSamples, const GrCaps& caps) const { BlendFormula blendFormula; bool isLCD = coverage == GrProcessorAnalysisCoverage::kLCD; if (isLCD) { @@ -778,10 +778,8 @@ sk_sp GrPorterDuffXPFactory::makeXferProcessor( hasMixedSamples, fBlendMode); } - bool needsClamp = SkBlendMode::kPlus == fBlendMode; if ((blendFormula.hasSecondaryOutput() && !caps.shaderCaps()->dualSourceBlendingSupport()) || - (isLCD && (SkBlendMode::kSrcOver != fBlendMode /*|| !color.isOpaque()*/)) || - (needsClamp && (GrPixelConfigIsClamped::kNo == dstIsClamped))) { + (isLCD && (SkBlendMode::kSrcOver != fBlendMode /*|| !color.isOpaque()*/))) { return sk_sp(new ShaderPDXferProcessor(hasMixedSamples, fBlendMode, coverage)); } @@ -790,7 +788,7 @@ sk_sp GrPorterDuffXPFactory::makeXferProcessor( static inline GrXPFactory::AnalysisProperties analysis_properties( const GrProcessorAnalysisColor& color, const GrProcessorAnalysisCoverage& coverage, - const GrCaps& caps, GrPixelConfigIsClamped dstIsClamped, SkBlendMode mode) { + const GrCaps& caps, SkBlendMode mode) { using AnalysisProperties = GrXPFactory::AnalysisProperties; AnalysisProperties props = AnalysisProperties::kNone; bool hasCoverage = GrProcessorAnalysisCoverage::kNone != coverage; @@ -837,11 +835,6 @@ static inline GrXPFactory::AnalysisProperties analysis_properties( } } - bool needsClamp = SkBlendMode::kPlus == mode; - if (needsClamp && (GrPixelConfigIsClamped::kNo == dstIsClamped)) { - props |= AnalysisProperties::kReadsDstInShader; - } - if (!formula.modifiesDst() || !formula.usesInputColor()) { props |= AnalysisProperties::kIgnoresInputColor; } @@ -857,9 +850,8 @@ static inline GrXPFactory::AnalysisProperties analysis_properties( GrXPFactory::AnalysisProperties GrPorterDuffXPFactory::analysisProperties( const GrProcessorAnalysisColor& color, const GrProcessorAnalysisCoverage& coverage, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped) const { - return analysis_properties(color, coverage, caps, dstIsClamped, fBlendMode); + const GrCaps& caps) const { + return analysis_properties(color, coverage, caps, fBlendMode); } GR_DEFINE_XP_FACTORY_TEST(GrPorterDuffXPFactory); @@ -946,7 +938,6 @@ sk_sp GrPorterDuffXPFactory::MakeNoCoverageXP(SkBlendMode GrXPFactory::AnalysisProperties GrPorterDuffXPFactory::SrcOverAnalysisProperties( const GrProcessorAnalysisColor& color, const GrProcessorAnalysisCoverage& coverage, - const GrCaps& caps, - GrPixelConfigIsClamped dstIsClamped) { - return analysis_properties(color, coverage, caps, dstIsClamped, SkBlendMode::kSrcOver); + const GrCaps& caps) { + return analysis_properties(color, coverage, caps, SkBlendMode::kSrcOver); } diff --git a/src/gpu/effects/GrPorterDuffXferProcessor.h b/src/gpu/effects/GrPorterDuffXferProcessor.h index 74ae1533bf..ebe02126d2 100644 --- a/src/gpu/effects/GrPorterDuffXferProcessor.h +++ b/src/gpu/effects/GrPorterDuffXferProcessor.h @@ -41,8 +41,7 @@ public: static AnalysisProperties SrcOverAnalysisProperties(const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, - const GrCaps&, - GrPixelConfigIsClamped); + const GrCaps&); private: constexpr GrPorterDuffXPFactory(SkBlendMode); @@ -50,13 +49,11 @@ private: sk_sp makeXferProcessor(const GrProcessorAnalysisColor&, GrProcessorAnalysisCoverage, bool hasMixedSamples, - const GrCaps&, - GrPixelConfigIsClamped) const override; + const GrCaps&) const override; AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&, const GrProcessorAnalysisCoverage&, - const GrCaps&, - GrPixelConfigIsClamped) const override; + const GrCaps&) const override; GR_DECLARE_XP_FACTORY_TEST static void TestGetXPOutputTypes(const GrXferProcessor*, int* outPrimary, int* outSecondary); diff --git a/src/gpu/ops/GrAAConvexPathRenderer.cpp b/src/gpu/ops/GrAAConvexPathRenderer.cpp index cfff457af5..7f54357cc4 100644 --- a/src/gpu/ops/GrAAConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp @@ -782,10 +782,8 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, &fPaths.back().fColor); } diff --git a/src/gpu/ops/GrAAFillRectOp.cpp b/src/gpu/ops/GrAAFillRectOp.cpp index cbd1ad5c30..0d97de493a 100644 --- a/src/gpu/ops/GrAAFillRectOp.cpp +++ b/src/gpu/ops/GrAAFillRectOp.cpp @@ -229,11 +229,10 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor color = this->first()->color(); auto result = fHelper.xpRequiresDstTexture( - caps, clip, dstIsClamped, GrProcessorAnalysisCoverage::kSingleChannel, &color); + caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, &color); this->first()->setColor(color); return result; } diff --git a/src/gpu/ops/GrAAHairLinePathRenderer.cpp b/src/gpu/ops/GrAAHairLinePathRenderer.cpp index 620a8c0576..bed8cbfd34 100644 --- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp +++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp @@ -823,10 +823,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, &fColor); + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + &fColor); } private: diff --git a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp index 7b1082a0fd..958f0f991e 100644 --- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp +++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp @@ -200,10 +200,8 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, &fPaths.back().fColor); } diff --git a/src/gpu/ops/GrAAStrokeRectOp.cpp b/src/gpu/ops/GrAAStrokeRectOp.cpp index 651f839af8..1b2ab8e2a6 100644 --- a/src/gpu/ops/GrAAStrokeRectOp.cpp +++ b/src/gpu/ops/GrAAStrokeRectOp.cpp @@ -202,10 +202,8 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, &fRects.back().fColor); } diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp index d956755f38..cfd0c45c70 100644 --- a/src/gpu/ops/GrAtlasTextOp.cpp +++ b/src/gpu/ops/GrAtlasTextOp.cpp @@ -138,8 +138,7 @@ GrDrawOp::FixedFunctionFlags GrAtlasTextOp::fixedFunctionFlags() const { } GrDrawOp::RequiresDstTexture GrAtlasTextOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) { + const GrAppliedClip* clip) { GrProcessorAnalysisCoverage coverage; GrProcessorAnalysisColor color; if (kColorBitmapMask_MaskType == fMaskType) { @@ -162,8 +161,7 @@ GrDrawOp::RequiresDstTexture GrAtlasTextOp::finalize(const GrCaps& caps, coverage = GrProcessorAnalysisCoverage::kNone; break; } - auto analysis = fProcessors.finalize(color, coverage, clip, false, caps, dstIsClamped, - &fGeoData[0].fColor); + auto analysis = fProcessors.finalize(color, coverage, clip, false, caps, &fGeoData[0].fColor); fUsesLocalCoords = analysis.usesLocalCoords(); fCanCombineOnTouchOrOverlap = !analysis.requiresDstTexture() && diff --git a/src/gpu/ops/GrAtlasTextOp.h b/src/gpu/ops/GrAtlasTextOp.h index 461c85c81c..14f7e953a3 100644 --- a/src/gpu/ops/GrAtlasTextOp.h +++ b/src/gpu/ops/GrAtlasTextOp.h @@ -74,8 +74,7 @@ public: FixedFunctionFlags fixedFunctionFlags() const override; - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override; + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override; enum MaskType { kGrayscaleCoverageMask_MaskType, diff --git a/src/gpu/ops/GrDashOp.cpp b/src/gpu/ops/GrDashOp.cpp index b5d7a478db..76203e521a 100644 --- a/src/gpu/ops/GrDashOp.cpp +++ b/src/gpu/ops/GrDashOp.cpp @@ -311,16 +311,14 @@ public: return flags; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrProcessorAnalysisCoverage coverage; if (AAMode::kNone == fAAMode && !clip->numClipCoverageFragmentProcessors()) { coverage = GrProcessorAnalysisCoverage::kNone; } else { coverage = GrProcessorAnalysisCoverage::kSingleChannel; } - auto analysis = fProcessorSet.finalize(fColor, coverage, clip, false, caps, dstIsClamped, - &fColor); + auto analysis = fProcessorSet.finalize(fColor, coverage, clip, false, caps, &fColor); fDisallowCombineOnTouchOrOverlap = analysis.requiresDstTexture() || (fProcessorSet.xferProcessor() && fProcessorSet.xferProcessor()->xferBarrierType(caps)); diff --git a/src/gpu/ops/GrDefaultPathRenderer.cpp b/src/gpu/ops/GrDefaultPathRenderer.cpp index a48dedc048..9fb1027375 100644 --- a/src/gpu/ops/GrDefaultPathRenderer.cpp +++ b/src/gpu/ops/GrDefaultPathRenderer.cpp @@ -389,12 +389,11 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrProcessorAnalysisCoverage gpCoverage = this->coverage() == 0xFF ? GrProcessorAnalysisCoverage::kNone : GrProcessorAnalysisCoverage::kSingleChannel; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, gpCoverage, &fColor); + return fHelper.xpRequiresDstTexture(caps, clip, gpCoverage, &fColor); } private: diff --git a/src/gpu/ops/GrDrawAtlasOp.cpp b/src/gpu/ops/GrDrawAtlasOp.cpp index 4c25edc207..0f94d7e548 100644 --- a/src/gpu/ops/GrDrawAtlasOp.cpp +++ b/src/gpu/ops/GrDrawAtlasOp.cpp @@ -178,16 +178,15 @@ GrDrawOp::FixedFunctionFlags GrDrawAtlasOp::fixedFunctionFlags() const { } GrDrawOp::RequiresDstTexture GrDrawAtlasOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) { + const GrAppliedClip* clip) { GrProcessorAnalysisColor gpColor; if (this->hasColors()) { gpColor.setToUnknown(); } else { gpColor.setToConstant(fColor); } - auto result = fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kNone, &gpColor); + auto result = fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, + &gpColor); if (gpColor.isConstant(&fColor)) { fHasColors = false; } diff --git a/src/gpu/ops/GrDrawAtlasOp.h b/src/gpu/ops/GrDrawAtlasOp.h index 3bb7aa1553..4e894ce097 100644 --- a/src/gpu/ops/GrDrawAtlasOp.h +++ b/src/gpu/ops/GrDrawAtlasOp.h @@ -46,8 +46,7 @@ public: FixedFunctionFlags fixedFunctionFlags() const override; - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override; + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override; private: void onPrepareDraws(Target*) override; diff --git a/src/gpu/ops/GrDrawOp.h b/src/gpu/ops/GrDrawOp.h index 7871d9e70d..7295b3b861 100644 --- a/src/gpu/ops/GrDrawOp.h +++ b/src/gpu/ops/GrDrawOp.h @@ -44,8 +44,7 @@ public: * at this time the op must report whether a copy of the destination (or destination texture * itself) needs to be provided to the GrXferProcessor when this op executes. */ - virtual RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) = 0; + virtual RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) = 0; private: typedef GrOp INHERITED; diff --git a/src/gpu/ops/GrDrawPathOp.h b/src/gpu/ops/GrDrawPathOp.h index 02c0022ace..63986d7902 100644 --- a/src/gpu/ops/GrDrawPathOp.h +++ b/src/gpu/ops/GrDrawPathOp.h @@ -29,9 +29,8 @@ protected: } return FixedFunctionFlags::kUsesStencil; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return this->doProcessorAnalysis(caps, clip, dstIsClamped).requiresDstTexture() + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return this->doProcessorAnalysis(caps, clip).requiresDstTexture() ? RequiresDstTexture::kYes : RequiresDstTexture::kNo; } @@ -47,11 +46,10 @@ protected: GrProcessorSet detachProcessors() { return std::move(fProcessorSet); } inline GrPipeline::InitArgs pipelineInitArgs(const GrOpFlushState&); const GrProcessorSet::Analysis& doProcessorAnalysis(const GrCaps& caps, - const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) { + const GrAppliedClip* clip) { bool isMixedSamples = GrAAType::kMixedSamples == fAAType; fAnalysis = fProcessorSet.finalize(fInputColor, GrProcessorAnalysisCoverage::kNone, clip, - isMixedSamples, caps, dstIsClamped, &fInputColor); + isMixedSamples, caps, &fInputColor); return fAnalysis; } const GrProcessorSet::Analysis& processorAnalysis() const { diff --git a/src/gpu/ops/GrDrawVerticesOp.cpp b/src/gpu/ops/GrDrawVerticesOp.cpp index bb5b7a5ef2..83a703fb54 100644 --- a/src/gpu/ops/GrDrawVerticesOp.cpp +++ b/src/gpu/ops/GrDrawVerticesOp.cpp @@ -131,16 +131,15 @@ GrDrawOp::FixedFunctionFlags GrDrawVerticesOp::fixedFunctionFlags() const { } GrDrawOp::RequiresDstTexture GrDrawVerticesOp::finalize(const GrCaps& caps, - const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) { + const GrAppliedClip* clip) { GrProcessorAnalysisColor gpColor; if (this->requiresPerVertexColors()) { gpColor.setToUnknown(); } else { gpColor.setToConstant(fMeshes.front().fColor); } - auto result = fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kNone, &gpColor); + auto result = fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, + &gpColor); if (gpColor.isConstant(&fMeshes.front().fColor)) { fMeshes.front().fIgnoreColors = true; fFlags &= ~kRequiresPerVertexColors_Flag; diff --git a/src/gpu/ops/GrDrawVerticesOp.h b/src/gpu/ops/GrDrawVerticesOp.h index d15e620ff5..9b638b8172 100644 --- a/src/gpu/ops/GrDrawVerticesOp.h +++ b/src/gpu/ops/GrDrawVerticesOp.h @@ -59,8 +59,7 @@ public: FixedFunctionFlags fixedFunctionFlags() const override; - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override; + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override; private: enum class ColorArrayType { diff --git a/src/gpu/ops/GrLatticeOp.cpp b/src/gpu/ops/GrLatticeOp.cpp index 92bcb0c563..07821c016e 100644 --- a/src/gpu/ops/GrLatticeOp.cpp +++ b/src/gpu/ops/GrLatticeOp.cpp @@ -187,14 +187,13 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { auto opaque = GrColorIsOpaque(fPatches[0].fColor) && GrPixelConfigIsOpaque(fProxy->config()) ? GrProcessorAnalysisColor::Opaque::kYes : GrProcessorAnalysisColor::Opaque::kNo; auto analysisColor = GrProcessorAnalysisColor(opaque); auto result = fHelper.xpRequiresDstTexture( - caps, clip, dstIsClamped, GrProcessorAnalysisCoverage::kNone, &analysisColor); + caps, clip, GrProcessorAnalysisCoverage::kNone, &analysisColor); analysisColor.isConstant(&fPatches[0].fColor); return result; } diff --git a/src/gpu/ops/GrNonAAFillRectOp.cpp b/src/gpu/ops/GrNonAAFillRectOp.cpp index 8af9651a46..1b76d4abfe 100644 --- a/src/gpu/ops/GrNonAAFillRectOp.cpp +++ b/src/gpu/ops/GrNonAAFillRectOp.cpp @@ -163,11 +163,9 @@ public: return str; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fRects.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kNone, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -294,11 +292,9 @@ public: return str; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fRects.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kNone, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } diff --git a/src/gpu/ops/GrNonAAStrokeRectOp.cpp b/src/gpu/ops/GrNonAAStrokeRectOp.cpp index 4090e3437d..357d9232ff 100644 --- a/src/gpu/ops/GrNonAAStrokeRectOp.cpp +++ b/src/gpu/ops/GrNonAAStrokeRectOp.cpp @@ -133,10 +133,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kNone, &fColor); + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, + &fColor); } private: diff --git a/src/gpu/ops/GrOvalOpFactory.cpp b/src/gpu/ops/GrOvalOpFactory.cpp index cb7dade289..59efec3ad6 100644 --- a/src/gpu/ops/GrOvalOpFactory.cpp +++ b/src/gpu/ops/GrOvalOpFactory.cpp @@ -1140,11 +1140,10 @@ public: return string; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fCircles.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -1632,11 +1631,10 @@ public: return string; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fCircles.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -1946,11 +1944,10 @@ public: return string; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fEllipses.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -2185,11 +2182,10 @@ public: return string; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fEllipses.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -2519,11 +2515,10 @@ public: return string; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fRRects.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } @@ -2885,11 +2880,10 @@ public: return string; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrColor* color = &fRRects.front().fColor; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, color); + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, + color); } FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } diff --git a/src/gpu/ops/GrRegionOp.cpp b/src/gpu/ops/GrRegionOp.cpp index cd51152b8c..852cd46c70 100644 --- a/src/gpu/ops/GrRegionOp.cpp +++ b/src/gpu/ops/GrRegionOp.cpp @@ -102,10 +102,9 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kNone, &fRegions[0].fColor); + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kNone, + &fRegions[0].fColor); } private: diff --git a/src/gpu/ops/GrShadowRRectOp.cpp b/src/gpu/ops/GrShadowRRectOp.cpp index 220556ffdb..09a2442619 100644 --- a/src/gpu/ops/GrShadowRRectOp.cpp +++ b/src/gpu/ops/GrShadowRRectOp.cpp @@ -258,8 +258,7 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp index d1565c1235..498e95819b 100644 --- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp +++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp @@ -64,8 +64,8 @@ bool GrSimpleMeshDrawOpHelper::isCompatible(const GrSimpleMeshDrawOpHelper& that } GrDrawOp::RequiresDstTexture GrSimpleMeshDrawOpHelper::xpRequiresDstTexture( - const GrCaps& caps, const GrAppliedClip* clip, GrPixelConfigIsClamped dstIsClamped, - GrProcessorAnalysisCoverage geometryCoverage, GrProcessorAnalysisColor* geometryColor) { + const GrCaps& caps, const GrAppliedClip* clip, GrProcessorAnalysisCoverage geometryCoverage, + GrProcessorAnalysisColor* geometryColor) { SkDEBUGCODE(fDidAnalysis = true); GrProcessorSet::Analysis analysis; if (fProcessors) { @@ -78,7 +78,7 @@ GrDrawOp::RequiresDstTexture GrSimpleMeshDrawOpHelper::xpRequiresDstTexture( bool isMixedSamples = this->aaType() == GrAAType::kMixedSamples; GrColor overrideColor; analysis = fProcessors->finalize(*geometryColor, coverage, clip, isMixedSamples, caps, - dstIsClamped, &overrideColor); + &overrideColor); if (analysis.inputColorIsOverridden()) { *geometryColor = overrideColor; } @@ -93,10 +93,10 @@ GrDrawOp::RequiresDstTexture GrSimpleMeshDrawOpHelper::xpRequiresDstTexture( } GrDrawOp::RequiresDstTexture GrSimpleMeshDrawOpHelper::xpRequiresDstTexture( - const GrCaps& caps, const GrAppliedClip* clip, GrPixelConfigIsClamped dstIsClamped, - GrProcessorAnalysisCoverage geometryCoverage, GrColor* geometryColor) { + const GrCaps& caps, const GrAppliedClip* clip, GrProcessorAnalysisCoverage geometryCoverage, + GrColor* geometryColor) { GrProcessorAnalysisColor color = *geometryColor; - auto result = this->xpRequiresDstTexture(caps, clip, dstIsClamped, geometryCoverage, &color); + auto result = this->xpRequiresDstTexture(caps, clip, geometryCoverage, &color); color.isConstant(geometryColor); return result; } diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h index d2bfd369e0..2bffa09d4c 100644 --- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h +++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h @@ -67,7 +67,6 @@ public: * color from its geometry processor instead. */ GrDrawOp::RequiresDstTexture xpRequiresDstTexture(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped, GrProcessorAnalysisCoverage geometryCoverage, GrProcessorAnalysisColor* geometryColor); @@ -77,7 +76,6 @@ public: * changed the op must override its geometry processor color output with the new color. */ GrDrawOp::RequiresDstTexture xpRequiresDstTexture(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped dstIsClamped, GrProcessorAnalysisCoverage geometryCoverage, GrColor* geometryColor); diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp index 01c84ee0a0..286fab71c7 100644 --- a/src/gpu/ops/GrSmallPathRenderer.cpp +++ b/src/gpu/ops/GrSmallPathRenderer.cpp @@ -293,10 +293,8 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, - GrProcessorAnalysisCoverage::kSingleChannel, + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { + return fHelper.xpRequiresDstTexture(caps, clip, GrProcessorAnalysisCoverage::kSingleChannel, &fShapes.front().fColor); } diff --git a/src/gpu/ops/GrTessellatingPathRenderer.cpp b/src/gpu/ops/GrTessellatingPathRenderer.cpp index ec33f3868f..1c0a7f5551 100644 --- a/src/gpu/ops/GrTessellatingPathRenderer.cpp +++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp @@ -220,12 +220,11 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return fHelper.fixedFunctionFlags(); } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { GrProcessorAnalysisCoverage coverage = fAntiAlias ? GrProcessorAnalysisCoverage::kSingleChannel : GrProcessorAnalysisCoverage::kNone; - return fHelper.xpRequiresDstTexture(caps, clip, dstIsClamped, coverage, &fColor); + return fHelper.xpRequiresDstTexture(caps, clip, coverage, &fColor); } private: diff --git a/src/gpu/ops/GrTextureOp.cpp b/src/gpu/ops/GrTextureOp.cpp index bced31dbc5..108ee4294a 100644 --- a/src/gpu/ops/GrTextureOp.cpp +++ b/src/gpu/ops/GrTextureOp.cpp @@ -683,8 +683,7 @@ public: return str; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { SkASSERT(!fFinalized); SkASSERT(1 == fProxyCnt); fFinalized = true; diff --git a/tests/DrawOpAtlasTest.cpp b/tests/DrawOpAtlasTest.cpp index e065bf0249..97524cd860 100644 --- a/tests/DrawOpAtlasTest.cpp +++ b/tests/DrawOpAtlasTest.cpp @@ -202,7 +202,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(GrAtlasTextOpPreparation, reporter, ctxInfo) rtc.get(), paint, SkMatrix::I(), text, 16, 16); - op->finalize(*context->contextPriv().caps(), nullptr, GrPixelConfigIsClamped::kNo); + op->finalize(*context->contextPriv().caps(), nullptr); TestingUploadTarget uploadTarget; diff --git a/tests/GrMeshTest.cpp b/tests/GrMeshTest.cpp index aa951c0364..3417a7eb37 100644 --- a/tests/GrMeshTest.cpp +++ b/tests/GrMeshTest.cpp @@ -275,8 +275,7 @@ private: const char* name() const override { return "GrMeshTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } bool onCombineIfPossible(GrOp* other, const GrCaps& caps) override { return false; } diff --git a/tests/GrPipelineDynamicStateTest.cpp b/tests/GrPipelineDynamicStateTest.cpp index b2aaecc48b..8752e61e7f 100644 --- a/tests/GrPipelineDynamicStateTest.cpp +++ b/tests/GrPipelineDynamicStateTest.cpp @@ -133,8 +133,7 @@ private: const char* name() const override { return "GrPipelineDynamicStateTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } bool onCombineIfPossible(GrOp* other, const GrCaps& caps) override { return false; } diff --git a/tests/GrPorterDuffTest.cpp b/tests/GrPorterDuffTest.cpp index 2a666a68c7..50920d3e45 100644 --- a/tests/GrPorterDuffTest.cpp +++ b/tests/GrPorterDuffTest.cpp @@ -65,8 +65,7 @@ static GrProcessorSet::Analysis do_analysis(const GrXPFactory* xpf, GrProcessorSet procs(std::move(paint)); GrColor overrideColor; GrProcessorSet::Analysis analysis = - procs.finalize(colorInput, coverageInput, nullptr, false, caps, - GrPixelConfigIsClamped::kYes, &overrideColor); + procs.finalize(colorInput, coverageInput, nullptr, false, caps, &overrideColor); return analysis; } @@ -84,8 +83,7 @@ public: fCanCombineOverlappedStencilAndCover = analysis.canCombineOverlappedStencilAndCover(); fIgnoresInputColor = analysis.inputColorIsIgnored(); sk_sp xp( - GrXPFactory::MakeXferProcessor(xpf, inputColor, inputCoverage, false, caps, - GrPixelConfigIsClamped::kYes)); + GrXPFactory::MakeXferProcessor(xpf, inputColor, inputCoverage, false, caps)); TEST_ASSERT(!analysis.requiresDstTexture() || (isLCD && !caps.shaderCaps()->dstReadInShaderSupport() && @@ -1016,12 +1014,10 @@ static void test_lcd_coverage_fallback_case(skiatest::Reporter* reporter, const const GrXPFactory* xpf = GrPorterDuffXPFactory::Get(SkBlendMode::kSrcOver); GrProcessorAnalysisColor color = GrColorPackRGBA(123, 45, 67, 255); GrProcessorAnalysisCoverage coverage = GrProcessorAnalysisCoverage::kLCD; - TEST_ASSERT(!(GrXPFactory::GetAnalysisProperties(xpf, color, coverage, caps, - GrPixelConfigIsClamped::kYes) & + TEST_ASSERT(!(GrXPFactory::GetAnalysisProperties(xpf, color, coverage, caps) & GrXPFactory::AnalysisProperties::kRequiresDstTexture)); sk_sp xp_opaque( - GrXPFactory::MakeXferProcessor(xpf, color, coverage, false, caps, - GrPixelConfigIsClamped::kYes)); + GrXPFactory::MakeXferProcessor(xpf, color, coverage, false, caps)); if (!xp_opaque) { ERRORF(reporter, "Failed to create an XP with LCD coverage."); return; @@ -1034,12 +1030,10 @@ static void test_lcd_coverage_fallback_case(skiatest::Reporter* reporter, const // Test with non-opaque alpha color = GrColorPackRGBA(123, 45, 67, 221); coverage = GrProcessorAnalysisCoverage::kLCD; - TEST_ASSERT(!(GrXPFactory::GetAnalysisProperties(xpf, color, coverage, caps, - GrPixelConfigIsClamped::kYes) & + TEST_ASSERT(!(GrXPFactory::GetAnalysisProperties(xpf, color, coverage, caps) & GrXPFactory::AnalysisProperties::kRequiresDstTexture)); sk_sp xp( - GrXPFactory::MakeXferProcessor(xpf, color, coverage, false, caps, - GrPixelConfigIsClamped::kYes)); + GrXPFactory::MakeXferProcessor(xpf, color, coverage, false, caps)); if (!xp) { ERRORF(reporter, "Failed to create an XP with LCD coverage."); return; @@ -1090,8 +1084,7 @@ DEF_GPUTEST(PorterDuffNoDualSourceBlending, reporter, options) { SkBlendMode xfermode = static_cast(m); const GrXPFactory* xpf = GrPorterDuffXPFactory::Get(xfermode); sk_sp xp( - GrXPFactory::MakeXferProcessor(xpf, colorInput, coverageType, false, caps, - GrPixelConfigIsClamped::kYes)); + GrXPFactory::MakeXferProcessor(xpf, colorInput, coverageType, false, caps)); if (!xp) { ERRORF(reporter, "Failed to create an XP without dual source blending."); return; diff --git a/tests/LazyProxyTest.cpp b/tests/LazyProxyTest.cpp index aaf1ab9745..7945ec6714 100644 --- a/tests/LazyProxyTest.cpp +++ b/tests/LazyProxyTest.cpp @@ -106,8 +106,7 @@ public: const char* name() const override { return "LazyProxyTest::Op"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } bool onCombineIfPossible(GrOp* other, const GrCaps& caps) override { return false; } @@ -321,8 +320,7 @@ private: const char* name() const override { return "LazyFailedInstantiationTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } bool onCombineIfPossible(GrOp* other, const GrCaps& caps) override { return false; } @@ -396,8 +394,7 @@ private: const char* name() const override { return "LazyUninstantiateTestOp"; } FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*, - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } bool onCombineIfPossible(GrOp* other, const GrCaps& caps) override { return false; } diff --git a/tests/OnFlushCallbackTest.cpp b/tests/OnFlushCallbackTest.cpp index c60ae7c7da..ea871fbf44 100644 --- a/tests/OnFlushCallbackTest.cpp +++ b/tests/OnFlushCallbackTest.cpp @@ -72,15 +72,14 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip*, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip*) override { // Set the color to unknown because the subclass may change the color later. GrProcessorAnalysisColor gpColor; gpColor.setToUnknown(); // We ignore the clip so pass this rather than the GrAppliedClip param. static GrAppliedClip kNoClip; - return fHelper.xpRequiresDstTexture(caps, &kNoClip, dstIsClamped, - GrProcessorAnalysisCoverage::kNone, &gpColor); + return fHelper.xpRequiresDstTexture(caps, &kNoClip, GrProcessorAnalysisCoverage::kNone, + &gpColor); } protected: diff --git a/tests/PrimitiveProcessorTest.cpp b/tests/PrimitiveProcessorTest.cpp index e9fbfd101a..661c1ce7f1 100644 --- a/tests/PrimitiveProcessorTest.cpp +++ b/tests/PrimitiveProcessorTest.cpp @@ -42,8 +42,7 @@ public: return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*,\ - GrPixelConfigIsClamped) override { + RequiresDstTexture finalize(const GrCaps&, const GrAppliedClip*) override { return RequiresDstTexture::kNo; } diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp index e52070b7d2..4eb735f325 100644 --- a/tests/ProcessorTest.cpp +++ b/tests/ProcessorTest.cpp @@ -42,12 +42,11 @@ public: FixedFunctionFlags fixedFunctionFlags() const override { return FixedFunctionFlags::kNone; } - RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip, - GrPixelConfigIsClamped dstIsClamped) override { + RequiresDstTexture finalize(const GrCaps& caps, const GrAppliedClip* clip) override { static constexpr GrProcessorAnalysisColor kUnknownColor; GrColor overrideColor; fProcessors.finalize(kUnknownColor, GrProcessorAnalysisCoverage::kNone, clip, false, caps, - dstIsClamped, &overrideColor); + &overrideColor); return RequiresDstTexture::kNo; } -- cgit v1.2.3