Index: src/gpu/GrPipeline.cpp |
diff --git a/src/gpu/GrPipeline.cpp b/src/gpu/GrPipeline.cpp |
index fc9f4eab12ecb1b4171bed990eca4f73841f0f10..b1fffe2065e36e7b66f999cbd57f52fc32dcc794 100644 |
--- a/src/gpu/GrPipeline.cpp |
+++ b/src/gpu/GrPipeline.cpp |
@@ -33,7 +33,16 @@ GrPipeline::GrPipeline(const GrPipelineBuilder& pipelineBuilder, |
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. |
+ SkASSERT(pipelineBuilder.fRenderTarget.get()); |
+ bool isMixedSampledTarget = pipelineBuilder.fRenderTarget.get()->sampleConfig() == |
+ GrRenderTarget::kStencil_SampleConfig; |
+ localColorPOI.setHasMixedSamplesModulation(pipelineBuilder.isHWAntialias() && |
+ isMixedSampledTarget); |
+ |
+ optFlags = xferProcessor->getOptimizations(localColorPOI, |
coveragePOI, |
pipelineBuilder.getStencil().doesWrite(), |
&overrideColor, |