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 <mtklein@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/gm/beziereffects.cpp b/gm/beziereffects.cpp
index 9f3bcd7..d3af3db 100644
--- a/gm/beziereffects.cpp
+++ b/gm/beziereffects.cpp
@@ -29,10 +29,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 = 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 3c825dc..78dcfe1 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -58,10 +58,9 @@
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 1c2af04..1490574 100644
--- a/include/private/GrTypesPriv.h
+++ b/include/private/GrTypesPriv.h
@@ -283,15 +283,6 @@
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 @@
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 @@
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 13cc0a0..5763253 100644
--- a/samplecode/SampleCCPRGeometry.cpp
+++ b/samplecode/SampleCCPRGeometry.cpp
@@ -86,8 +86,7 @@
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 f4cda54..c70e479 100644
--- a/src/atlastext/SkAtlasTextTarget.cpp
+++ b/src/atlastext/SkAtlasTextTarget.cpp
@@ -202,7 +202,7 @@
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 919ff47..e4da038 100644
--- a/src/gpu/GrProcessorSet.cpp
+++ b/src/gpu/GrProcessorSet.cpp
@@ -159,9 +159,7 @@
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 @@
}
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 @@
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 b61980b..05d0a59 100644
--- a/src/gpu/GrProcessorSet.h
+++ b/src/gpu/GrProcessorSet.h
@@ -141,8 +141,7 @@
*/
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 51c9a85..058d48e 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -1763,11 +1763,8 @@
this->setNeedsStencil();
}
- 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 341b05a..a008e98 100644
--- a/src/gpu/GrXferProcessor.cpp
+++ b/src/gpu/GrXferProcessor.cpp
@@ -160,14 +160,12 @@
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 @@
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 5ede1ae..6d80333 100644
--- a/src/gpu/GrXferProcessor.h
+++ b/src/gpu/GrXferProcessor.h
@@ -292,14 +292,12 @@
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 @@
virtual sk_sp<const GrXferProcessor> 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 @@
*/
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 042a45b..2d250de 100644
--- a/src/gpu/ccpr/GrCCDrawPathsOp.cpp
+++ b/src/gpu/ccpr/GrCCDrawPathsOp.cpp
@@ -109,12 +109,11 @@
}
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 9509bb8..9ef317f 100644
--- a/src/gpu/ccpr/GrCCDrawPathsOp.h
+++ b/src/gpu/ccpr/GrCCDrawPathsOp.h
@@ -36,8 +36,7 @@
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 dd0bf1b..bc586be 100644
--- a/src/gpu/ccpr/GrCCPerFlushResources.cpp
+++ b/src/gpu/ccpr/GrCCPerFlushResources.cpp
@@ -24,8 +24,9 @@
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 2524c9c..e7ac874 100644
--- a/src/gpu/effects/GrCoverageSetOpXP.cpp
+++ b/src/gpu/effects/GrCoverageSetOpXP.cpp
@@ -211,8 +211,7 @@
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 cf91848..e8bc5a2 100644
--- a/src/gpu/effects/GrCoverageSetOpXP.h
+++ b/src/gpu/effects/GrCoverageSetOpXP.h
@@ -37,13 +37,11 @@
sk_sp<const GrXferProcessor> 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 bdeda94..5c35260 100644
--- a/src/gpu/effects/GrCustomXfermode.cpp
+++ b/src/gpu/effects/GrCustomXfermode.cpp
@@ -217,13 +217,11 @@
sk_sp<const GrXferProcessor> 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 @@
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<GrXferProcessor>(new CustomXP(fMode, fHWBlendEquation));
@@ -254,7 +251,7 @@
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 314be6e..3f9f71e 100644
--- a/src/gpu/effects/GrDisableColorXP.cpp
+++ b/src/gpu/effects/GrDisableColorXP.cpp
@@ -79,8 +79,7 @@
const GrProcessorAnalysisColor&,
GrProcessorAnalysisCoverage,
bool hasMixedSamples,
- const GrCaps& caps,
- GrPixelConfigIsClamped dstIsClamped) const {
+ const GrCaps& caps) const {
return sk_sp<const GrXferProcessor>(new DisableColorXP);
}
diff --git a/src/gpu/effects/GrDisableColorXP.h b/src/gpu/effects/GrDisableColorXP.h
index 0c4f5cf..d15f952 100644
--- a/src/gpu/effects/GrDisableColorXP.h
+++ b/src/gpu/effects/GrDisableColorXP.h
@@ -30,8 +30,7 @@
AnalysisProperties analysisProperties(const GrProcessorAnalysisColor&,
const GrProcessorAnalysisCoverage&,
- const GrCaps&,
- GrPixelConfigIsClamped) const override {
+ const GrCaps&) const override {
return AnalysisProperties::kCompatibleWithAlphaAsCoverage |
AnalysisProperties::kIgnoresInputColor;
}
@@ -39,8 +38,7 @@
sk_sp<const GrXferProcessor> 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 ca08260..89f61ec 100644
--- a/src/gpu/effects/GrPorterDuffXferProcessor.cpp
+++ b/src/gpu/effects/GrPorterDuffXferProcessor.cpp
@@ -759,7 +759,7 @@
sk_sp<const GrXferProcessor> 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 @@
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<const GrXferProcessor>(new ShaderPDXferProcessor(hasMixedSamples, fBlendMode,
coverage));
}
@@ -790,7 +788,7 @@
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 @@
}
}
- 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 @@
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 @@
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 74ae153..ebe0212 100644
--- a/src/gpu/effects/GrPorterDuffXferProcessor.h
+++ b/src/gpu/effects/GrPorterDuffXferProcessor.h
@@ -41,8 +41,7 @@
static AnalysisProperties SrcOverAnalysisProperties(const GrProcessorAnalysisColor&,
const GrProcessorAnalysisCoverage&,
- const GrCaps&,
- GrPixelConfigIsClamped);
+ const GrCaps&);
private:
constexpr GrPorterDuffXPFactory(SkBlendMode);
@@ -50,13 +49,11 @@
sk_sp<const GrXferProcessor> 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 cfff457..7f54357 100644
--- a/src/gpu/ops/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAAConvexPathRenderer.cpp
@@ -782,10 +782,8 @@
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 cbd1ad5..0d97de49 100644
--- a/src/gpu/ops/GrAAFillRectOp.cpp
+++ b/src/gpu/ops/GrAAFillRectOp.cpp
@@ -229,11 +229,10 @@
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 620a8c0..bed8cbf 100644
--- a/src/gpu/ops/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/ops/GrAAHairLinePathRenderer.cpp
@@ -823,10 +823,9 @@
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 7b1082a..958f0f9 100644
--- a/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
+++ b/src/gpu/ops/GrAALinearizingConvexPathRenderer.cpp
@@ -200,10 +200,8 @@
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 651f839..1b2ab8e 100644
--- a/src/gpu/ops/GrAAStrokeRectOp.cpp
+++ b/src/gpu/ops/GrAAStrokeRectOp.cpp
@@ -202,10 +202,8 @@
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 d956755..cfd0c45 100644
--- a/src/gpu/ops/GrAtlasTextOp.cpp
+++ b/src/gpu/ops/GrAtlasTextOp.cpp
@@ -138,8 +138,7 @@
}
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 @@
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 461c85c..14f7e95 100644
--- a/src/gpu/ops/GrAtlasTextOp.h
+++ b/src/gpu/ops/GrAtlasTextOp.h
@@ -74,8 +74,7 @@
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 b5d7a47..76203e5 100644
--- a/src/gpu/ops/GrDashOp.cpp
+++ b/src/gpu/ops/GrDashOp.cpp
@@ -311,16 +311,14 @@
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 a48dedc..9fb1027 100644
--- a/src/gpu/ops/GrDefaultPathRenderer.cpp
+++ b/src/gpu/ops/GrDefaultPathRenderer.cpp
@@ -389,12 +389,11 @@
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 4c25edc..0f94d7e 100644
--- a/src/gpu/ops/GrDrawAtlasOp.cpp
+++ b/src/gpu/ops/GrDrawAtlasOp.cpp
@@ -178,16 +178,15 @@
}
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 3bb7aa1..4e894ce 100644
--- a/src/gpu/ops/GrDrawAtlasOp.h
+++ b/src/gpu/ops/GrDrawAtlasOp.h
@@ -46,8 +46,7 @@
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 7871d9e..7295b3b 100644
--- a/src/gpu/ops/GrDrawOp.h
+++ b/src/gpu/ops/GrDrawOp.h
@@ -44,8 +44,7 @@
* 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 02c0022..63986d7 100644
--- a/src/gpu/ops/GrDrawPathOp.h
+++ b/src/gpu/ops/GrDrawPathOp.h
@@ -29,9 +29,8 @@
}
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 @@
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 bb5b7a5..83a703f 100644
--- a/src/gpu/ops/GrDrawVerticesOp.cpp
+++ b/src/gpu/ops/GrDrawVerticesOp.cpp
@@ -131,16 +131,15 @@
}
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 d15e620..9b638b8 100644
--- a/src/gpu/ops/GrDrawVerticesOp.h
+++ b/src/gpu/ops/GrDrawVerticesOp.h
@@ -59,8 +59,7 @@
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 92bcb0c..07821c0 100644
--- a/src/gpu/ops/GrLatticeOp.cpp
+++ b/src/gpu/ops/GrLatticeOp.cpp
@@ -187,14 +187,13 @@
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 8af9651..1b76d4a 100644
--- a/src/gpu/ops/GrNonAAFillRectOp.cpp
+++ b/src/gpu/ops/GrNonAAFillRectOp.cpp
@@ -163,11 +163,9 @@
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 @@
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 4090e34..357d923 100644
--- a/src/gpu/ops/GrNonAAStrokeRectOp.cpp
+++ b/src/gpu/ops/GrNonAAStrokeRectOp.cpp
@@ -133,10 +133,9 @@
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 cb7dade..59efec3 100644
--- a/src/gpu/ops/GrOvalOpFactory.cpp
+++ b/src/gpu/ops/GrOvalOpFactory.cpp
@@ -1140,11 +1140,10 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 cd51152..852cd46 100644
--- a/src/gpu/ops/GrRegionOp.cpp
+++ b/src/gpu/ops/GrRegionOp.cpp
@@ -102,10 +102,9 @@
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 220556f..09a2442 100644
--- a/src/gpu/ops/GrShadowRRectOp.cpp
+++ b/src/gpu/ops/GrShadowRRectOp.cpp
@@ -258,8 +258,7 @@
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 d1565c1..498e958 100644
--- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
+++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.cpp
@@ -64,8 +64,8 @@
}
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 @@
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(
- 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 d2bfd36..2bffa09 100644
--- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
+++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
@@ -67,7 +67,6 @@
* 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 @@
* 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 01c84ee..286fab7 100644
--- a/src/gpu/ops/GrSmallPathRenderer.cpp
+++ b/src/gpu/ops/GrSmallPathRenderer.cpp
@@ -293,10 +293,8 @@
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 ec33f38..1c0a7f5 100644
--- a/src/gpu/ops/GrTessellatingPathRenderer.cpp
+++ b/src/gpu/ops/GrTessellatingPathRenderer.cpp
@@ -220,12 +220,11 @@
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 bced31d..108ee42 100644
--- a/src/gpu/ops/GrTextureOp.cpp
+++ b/src/gpu/ops/GrTextureOp.cpp
@@ -683,8 +683,7 @@
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 e065bf0..97524cd 100644
--- a/tests/DrawOpAtlasTest.cpp
+++ b/tests/DrawOpAtlasTest.cpp
@@ -202,7 +202,7 @@
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 aa951c0..3417a7e 100644
--- a/tests/GrMeshTest.cpp
+++ b/tests/GrMeshTest.cpp
@@ -275,8 +275,7 @@
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 b2aaecc..8752e61 100644
--- a/tests/GrPipelineDynamicStateTest.cpp
+++ b/tests/GrPipelineDynamicStateTest.cpp
@@ -133,8 +133,7 @@
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 2a666a6..50920d3 100644
--- a/tests/GrPorterDuffTest.cpp
+++ b/tests/GrPorterDuffTest.cpp
@@ -65,8 +65,7 @@
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 @@
fCanCombineOverlappedStencilAndCover = analysis.canCombineOverlappedStencilAndCover();
fIgnoresInputColor = analysis.inputColorIsIgnored();
sk_sp<const GrXferProcessor> 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 @@
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<const GrXferProcessor> 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 @@
// 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<const GrXferProcessor> 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 @@
SkBlendMode xfermode = static_cast<SkBlendMode>(m);
const GrXPFactory* xpf = GrPorterDuffXPFactory::Get(xfermode);
sk_sp<const GrXferProcessor> 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 aaf1ab9..7945ec6 100644
--- a/tests/LazyProxyTest.cpp
+++ b/tests/LazyProxyTest.cpp
@@ -106,8 +106,7 @@
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 @@
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 @@
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 c60ae7c..ea871fb 100644
--- a/tests/OnFlushCallbackTest.cpp
+++ b/tests/OnFlushCallbackTest.cpp
@@ -72,15 +72,14 @@
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 e9fbfd1..661c1ce 100644
--- a/tests/PrimitiveProcessorTest.cpp
+++ b/tests/PrimitiveProcessorTest.cpp
@@ -42,8 +42,7 @@
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 e52070b..4eb735f 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -42,12 +42,11 @@
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;
}