Index: src/gpu/gl/GrGLGpu.cpp |
diff --git a/src/gpu/gl/GrGLGpu.cpp b/src/gpu/gl/GrGLGpu.cpp |
index 20669b8e78bfcd7677cce97ff2a8575cb8516622..09eb7b8ffac98e6c489ad9bad20a49d443428a79 100644 |
--- a/src/gpu/gl/GrGLGpu.cpp |
+++ b/src/gpu/gl/GrGLGpu.cpp |
@@ -2158,6 +2158,18 @@ void GrGLGpu::flushBlend(const GrXferProcessor::BlendInfo& blendInfo) { |
if (blendOff) { |
if (kNo_TriState != fHWBlendState.fEnabled) { |
GL_CALL(Disable(GR_GL_BLEND)); |
+ |
+ // Workaround for the ARM KHR_blend_equation_advanced blacklist issue |
+ // https://code.google.com/p/skia/issues/detail?id=3943 |
+ if (kARM_GrGLVendor == this->ctxInfo().vendor() && |
egdaniel
2015/07/06 17:53:22
extra space after if
Joel.Liang
2015/07/07 02:56:21
Done.
|
+ GrBlendEquationIsAdvanced(fHWBlendState.fEquation)) { |
+ SkASSERT(this->caps()->advancedBlendEquationSupport()); |
+ // Set to any basic blending equation. |
+ GrBlendEquation blend_equation = kAdd_GrBlendEquation; |
+ GL_CALL(BlendEquation(gXfermodeEquation2Blend[blend_equation])); |
+ fHWBlendState.fEquation = blend_equation; |
+ } |
+ |
fHWBlendState.fEnabled = kNo_TriState; |
} |
return; |