Index: src/gpu/GrPipeline.cpp |
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp |
index 906426caaaecc0699dd8d878ee2ccdfa9bdfd6dd..6502829bfebf19275e8f517baa74c6ddcf117b0d 100644 |
--- a/src/gpu/GrPipeline.cpp |
+++ b/src/gpu/GrPipeline.cpp |
@@ -29,11 +29,21 @@ GrPipeline::GrPipeline(const GrPipelineBuilder& pipelineBuilder, |
overrideColor = colorPOI.inputColorToEffectiveStage(); |
} |
+ fRenderTarget.reset(pipelineBuilder.fRenderTarget.get()); |
+ SkASSERT(fRenderTarget); |
+ |
GrXferProcessor::OptFlags optFlags; |
if (xferProcessor) { |
fXferProcessor.reset(xferProcessor.get()); |
- optFlags = xferProcessor->getOptimizations(colorPOI, |
+ GrProcOptInfo localColorPOI = colorPOI; |
+ // Optimizations will try to turn off blending which is required by mixed |
+ // sampled modes. |
+ bool isMixedSampledTarget = |
+ (this->getRenderTarget()->sampleConfig() == kStencil_GrSampleConfig); |
+ localColorPOI.setNeedsCoverageModulation(isMixedSampledTarget); |
Chris Dalton
2015/03/14 02:51:30
No need to force blending unless we're actually us
|
+ |
+ optFlags = xferProcessor->getOptimizations(localColorPOI, |
coveragePOI, |
pipelineBuilder.getStencil().doesWrite(), |
&overrideColor, |
@@ -51,8 +61,6 @@ GrPipeline::GrPipeline(const GrPipelineBuilder& pipelineBuilder, |
return; |
} |
- fRenderTarget.reset(pipelineBuilder.fRenderTarget.get()); |
- SkASSERT(fRenderTarget); |
fScissorState = scissorState; |
fStencilSettings = pipelineBuilder.getStencil(); |
fDrawFace = pipelineBuilder.getDrawFace(); |