Disable framebuffer discarding on Mali-4xx and clean up.
It seems all of the known bugs with Mali-400 are related to framebuffer
discarding. Blacklist framebuffer discarding universally on Mali-400
and reenable ganesh and canvas where it was still blacklisted on Mali-400.
There was a preexisting workaround applied to all ARM < 4.4 which was
originally written in the context of Mali-T604; this explains why the
bugs only reproed on some Mali-400 devices. Add a new one for all 4xx.
Also, a recently added Nexus 6 workaround did essentially the same
thing, but at the level of making the discard do nothing instead of not
advertising the extension. In OpenGL ES 3, this is a core method so
failing to advertise won't be sufficient, so merge the two workarounds
and remove the "_ext_" from the name.
BUG=449488,451230
Review URL: https://codereview.chromium.org/1068573004
Cr-Commit-Position: refs/heads/master@{#324152}
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 754f735..6ed2f894 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -4522,7 +4522,7 @@
void GLES2DecoderImpl::DoDiscardFramebufferEXT(GLenum target,
GLsizei numAttachments,
const GLenum* attachments) {
- if (workarounds().disable_fbo_invalidations)
+ if (workarounds().disable_discard_framebuffer)
return;
Framebuffer* framebuffer =