| Index: src/gpu/gl/GrGLGpu.cpp | 
| diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp | 
| index 3bbc77aa9b128529bb66e27804466b64bf8eb4b5..349ef9ab93bd52e2ced208ba455c1d0b635b9ab2 100644 | 
| --- a/src/gpu/gl/GrGLGpu.cpp | 
| +++ b/src/gpu/gl/GrGLGpu.cpp | 
| @@ -233,6 +233,7 @@ GrGLGpu::GrGLGpu(GrGLContext* ctx, GrContext* context) | 
| } | 
| fHWPLSEnabled = false; | 
| fPLSHasBeenUsed = false; | 
| +    fHWMinSampleShading = 0.0; | 
| } | 
|  | 
| GrGLGpu::~GrGLGpu() { | 
| @@ -2070,12 +2071,26 @@ void GrGLGpu::flushScissor(const GrScissorState& scissorState, | 
| this->disableScissor(); | 
| } | 
|  | 
| +void GrGLGpu::flushMinSampleShading(float minSampleShading) { | 
| +    if (fHWMinSampleShading != minSampleShading) { | 
| +        if (minSampleShading > 0.0) { | 
| +            GL_CALL(Enable(GR_GL_SAMPLE_SHADING)); | 
| +            GL_CALL(MinSampleShading(minSampleShading)); | 
| +        } | 
| +        else { | 
| +            GL_CALL(Disable(GR_GL_SAMPLE_SHADING)); | 
| +        } | 
| +        fHWMinSampleShading = minSampleShading; | 
| +    } | 
| +} | 
| + | 
| bool GrGLGpu::flushGLState(const GrPipeline& pipeline, const GrPrimitiveProcessor& primProc) { | 
| GrXferProcessor::BlendInfo blendInfo; | 
| pipeline.getXferProcessor().getBlendInfo(&blendInfo); | 
|  | 
| this->flushColorWrite(blendInfo.fWriteColor); | 
| this->flushDrawFace(pipeline.getDrawFace()); | 
| +    this->flushMinSampleShading(primProc.getSampleShading()); | 
|  | 
| SkAutoTUnref<GrGLProgram> program(fProgramCache->refProgram(this, pipeline, primProc)); | 
| if (!program) { | 
|  |