Don't do discards when on Adreno4xx due to driver bug.
BUG=skia:
Review URL: https://codereview.chromium.org/1126423006
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index 06ebe3d..368e536 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -219,9 +219,12 @@
fUseNonVBOVertexAndIndexDynamicData = true;
}
- if ((kGL_GrGLStandard == standard && version >= GR_GL_VER(4,3)) ||
- (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0)) ||
- ctxInfo.hasExtension("GL_ARB_invalidate_subdata")) {
+ // A driver but on the nexus 6 causes incorrect dst copies when invalidate is called beforehand.
+ // Thus we are blacklisting this extension for now on Adreno4xx devices.
+ if (kAdreno4xx_GrGLRenderer != ctxInfo.renderer() &&
+ ((kGL_GrGLStandard == standard && version >= GR_GL_VER(4,3)) ||
+ (kGLES_GrGLStandard == standard && version >= GR_GL_VER(3,0)) ||
+ ctxInfo.hasExtension("GL_ARB_invalidate_subdata"))) {
fDiscardRenderTargetSupport = true;
fInvalidateFBType = kInvalidate_InvalidateFBType;
} else if (ctxInfo.hasExtension("GL_EXT_discard_framebuffer")) {