Index: src/gpu/gl/GrGLCaps.cpp |
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp |
index 4d856ac9320d9b1b58e5a3e9f0d1d8b1eb4583d9..b93d50b4d98f9b877dca013e1229b2dc6cb450dc 100644 |
--- a/src/gpu/gl/GrGLCaps.cpp |
+++ b/src/gpu/gl/GrGLCaps.cpp |
@@ -794,6 +794,13 @@ void GrGLCaps::initGLSL(const GrGLContextInfo& ctxInfo) { |
if (kIntel_GrGLVendor == ctxInfo.vendor()) { |
glslCaps->fMustForceNegatedAtanParamToFloat = true; |
} |
+ |
+ // On Adreno devices with framebuffer fetch support, there is a bug where they always return |
+ // the original dst color when reading the outColor even after being written to. By using a |
+ // local outColor we can work around this bug. |
+ if (glslCaps->fFBFetchSupport && kQualcomm_GrGLVendor == ctxInfo.vendor()) { |
+ glslCaps->fRequiresLocalOutputColorForFBFetch = true; |
+ } |
} |
bool GrGLCaps::hasPathRenderingSupport(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) { |