Revert of Fix to set correct output type when blending when we've read dst (patchset...
authorjoshualitt <joshualitt@google.com>
Wed, 10 Dec 2014 22:57:50 +0000 (14:57 -0800)
committerCommit bot <commit-bot@chromium.org>
Wed, 10 Dec 2014 22:57:50 +0000 (14:57 -0800)
Reason for revert:
Breaks DM on windows

Original issue's description:
> Fix to set correct output type when blending when we've read dst
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/733fc2054044377e914559fa4f46db66ab7d9cea

TBR=bsalomon@google.com,egdaniel@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/795783002

include/gpu/effects/GrPorterDuffXferProcessor.h
src/gpu/effects/GrPorterDuffXferProcessor.cpp

index 695d305..26800c7 100644 (file)
@@ -36,14 +36,6 @@ public:
     /// @name Stage Output Types
     ////
 
-    enum PrimaryOutputType {
-        // Modulate color and coverage, write result as the color output.
-        kModulate_PrimaryOutputType,
-        // Combines the coverage, dst, and color as coverage * color + (1 - coverage) * dst. This
-        // can only be set if fDstReadKey is non-zero.
-        kCombineWithDst_PrimaryOutputType,
-    };
-
     enum SecondaryOutputType {
         // There is no secondary output
         kNone_SecondaryOutputType,
@@ -60,7 +52,6 @@ public:
         kSecondaryOutputTypeCnt,
     };
 
-    PrimaryOutputType primaryOutputType() const { return fPrimaryOutputType; }
     SecondaryOutputType secondaryOutputType() const { return fSecondaryOutputType; }
 
     GrXferProcessor::OptFlags getOptimizations(const GrProcOptInfo& colorPOI,
@@ -86,7 +77,6 @@ private:
         if (fSrcBlend != xp.fSrcBlend ||
             fDstBlend != xp.fDstBlend ||
             fBlendConstant != xp.fBlendConstant ||
-            fPrimaryOutputType != xp.fPrimaryOutputType || 
             fSecondaryOutputType != xp.fSecondaryOutputType) {
             return false;
         }
@@ -109,7 +99,6 @@ private:
     GrBlendCoeff fSrcBlend;
     GrBlendCoeff fDstBlend;
     GrColor      fBlendConstant;
-    PrimaryOutputType fPrimaryOutputType;
     SecondaryOutputType fSecondaryOutputType;
 
     typedef GrXferProcessor INHERITED;
index f27b16c..0978546 100644 (file)
@@ -68,10 +68,6 @@ public:
         
         fsBuilder->codeAppendf("%s = %s * %s;", args.fOutputPrimary, args.fInputColor,
                                args.fInputCoverage);
-        if (GrPorterDuffXferProcessor::kCombineWithDst_PrimaryOutputType == xp.primaryOutputType()){
-            fsBuilder->codeAppendf("%s += (vec4(1.0) - %s) * %s;", args.fOutputPrimary,
-                                   args.fInputCoverage, fsBuilder->dstColor());
-        }
     }
 
     virtual void setData(const GrGLProgramDataManager&, const GrXferProcessor&) SK_OVERRIDE {};
@@ -79,7 +75,6 @@ public:
     static void GenKey(const GrProcessor& processor, const GrGLCaps& caps,
                        GrProcessorKeyBuilder* b) {
         const GrPorterDuffXferProcessor& xp = processor.cast<GrPorterDuffXferProcessor>();
-        b->add32(xp.primaryOutputType());
         b->add32(xp.secondaryOutputType());
     };
 
@@ -94,7 +89,6 @@ GrPorterDuffXferProcessor::GrPorterDuffXferProcessor(GrBlendCoeff srcBlend, GrBl
     : fSrcBlend(srcBlend)
     , fDstBlend(dstBlend)
     , fBlendConstant(constant)
-    , fPrimaryOutputType(kModulate_PrimaryOutputType) 
     , fSecondaryOutputType(kNone_SecondaryOutputType) {
     this->initClassID<GrPorterDuffXferProcessor>();
 }
@@ -158,10 +152,6 @@ void GrPorterDuffXferProcessor::calcOutputTypes(GrXferProcessor::OptFlags optFla
                 fSecondaryOutputType = kCoverageISC_SecondaryOutputType;
                 fDstBlend = (GrBlendCoeff)GrGpu::kIS2C_GrBlendCoeff;
             }
-        } else if (readsDst &&
-                   kOne_GrBlendCoeff == fSrcBlend &&
-                   kZero_GrBlendCoeff == fDstBlend) {
-            fPrimaryOutputType = kCombineWithDst_PrimaryOutputType;
         }
     }
 }