diff options
author | aelias@chromium.org <aelias@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-14 07:24:54 +0000 |
---|---|---|
committer | aelias@chromium.org <aelias@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-14 07:24:54 +0000 |
commit | b06096505f84032b48f8ad5243123997bb7b9d95 (patch) | |
tree | 8cb38ed44008a5d7787c27721ed189614c9e7b37 /gpu | |
parent | 12d953585e4ba55d1903af13798ef6c6176d189d (diff) | |
download | chromium_src-b06096505f84032b48f8ad5243123997bb7b9d95.zip chromium_src-b06096505f84032b48f8ad5243123997bb7b9d95.tar.gz chromium_src-b06096505f84032b48f8ad5243123997bb7b9d95.tar.bz2 |
Ignore GL_ANGLE_framebuffer_multisample on Android.
For some reason, some Qualcomm drivers add this string to their
extensions list, but don't support glRenderbufferStorageMultisampleEXT().
This works around the issue.
BUG=165736
Review URL: https://chromiumcodereview.appspot.com/11574023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173117 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/service/feature_info.cc | 9 | ||||
-rw-r--r-- | gpu/command_buffer/service/gles2_cmd_decoder.cc | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc index 0a207336..d447022 100644 --- a/gpu/command_buffer/service/feature_info.cc +++ b/gpu/command_buffer/service/feature_info.cc @@ -512,10 +512,15 @@ void FeatureInfo::AddFeatures(const char* desired_features) { } // Check for multisample support + bool ext_has_multisample = ext.Have("GL_EXT_framebuffer_multisample"); + if (!is_qualcomm || feature_flags_.disable_workarounds) { + // Some Android Qualcomm drivers falsely report this ANGLE extension string. + // See http://crbug.com/165736 + ext_has_multisample |= ext.Have("GL_ANGLE_framebuffer_multisample"); + } if (!disallowed_features_.multisampling && ext.Desire("GL_CHROMIUM_framebuffer_multisample") && - (ext.Have("GL_EXT_framebuffer_multisample") || - ext.Have("GL_ANGLE_framebuffer_multisample"))) { + ext_has_multisample) { feature_flags_.chromium_framebuffer_multisample = true; validators_.frame_buffer_target.AddValue(GL_READ_FRAMEBUFFER_EXT); validators_.frame_buffer_target.AddValue(GL_DRAW_FRAMEBUFFER_EXT); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 1c5843e..9aef1d4 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -2222,8 +2222,7 @@ bool GLES2DecoderImpl::Initialize( if (offscreen) { if (attrib_parser.samples_ > 0 && attrib_parser.sample_buffers_ > 0 && - (context_->HasExtension("GL_EXT_framebuffer_multisample") || - context_->HasExtension("GL_ANGLE_framebuffer_multisample"))) { + features().chromium_framebuffer_multisample) { // Per ext_framebuffer_multisample spec, need max bound on sample count. // max_sample_count must be initialized to a sane value. If // glGetIntegerv() throws a GL error, it leaves its argument unchanged. |