diff options
author | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-16 14:24:36 +0000 |
---|---|---|
committer | skyostil@chromium.org <skyostil@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-09-16 14:24:36 +0000 |
commit | 8ebb4e4652eb4c857e05a15003d4ba5b6410f00e (patch) | |
tree | d5c5abd767f288055023221fe56f57b66186d291 /gpu | |
parent | 62a6736943b03f0467deb42ad25a94086b574e04 (diff) | |
download | chromium_src-8ebb4e4652eb4c857e05a15003d4ba5b6410f00e.zip chromium_src-8ebb4e4652eb4c857e05a15003d4ba5b6410f00e.tar.gz chromium_src-8ebb4e4652eb4c857e05a15003d4ba5b6410f00e.tar.bz2 |
gpu: Disable EXT_discard_framebuffer on ARM GPUs and expose it for pre-ES3
Disable the EXT_discard_framebuffer extension on ARM GPUs (e.g., Nexus
10) as it is causing dropped frames and flickering.
This patch also exposes the EXT_discard_framebuffer extension on
pre-OpenGL ES 3.0 drivers which support it.
Tested on Nexus 10, Nexus 4 and Galaxy S4.
BUG=290876
Review URL: https://chromiumcodereview.appspot.com/23629043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223338 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu')
-rw-r--r-- | gpu/command_buffer/service/feature_info.cc | 3 | ||||
-rw-r--r-- | gpu/config/gpu_driver_bug_list_json.cc | 17 | ||||
-rw-r--r-- | gpu/config/gpu_driver_bug_workaround_type.h | 2 |
3 files changed, 20 insertions, 2 deletions
diff --git a/gpu/command_buffer/service/feature_info.cc b/gpu/command_buffer/service/feature_info.cc index eea252f..b9fd20e 100644 --- a/gpu/command_buffer/service/feature_info.cc +++ b/gpu/command_buffer/service/feature_info.cc @@ -685,7 +685,8 @@ void FeatureInfo::InitializeFeatures() { // when available. } - if (is_es3) { + if ((is_es3 || extensions.Contains("GL_EXT_discard_framebuffer")) && + !workarounds_.disable_ext_discard_framebuffer) { // DiscardFramebufferEXT is automatically bound to InvalidateFramebuffer. AddExtensionString("GL_EXT_discard_framebuffer"); } diff --git a/gpu/config/gpu_driver_bug_list_json.cc b/gpu/config/gpu_driver_bug_list_json.cc index a115bf5..6346e42 100644 --- a/gpu/config/gpu_driver_bug_list_json.cc +++ b/gpu/config/gpu_driver_bug_list_json.cc @@ -85,7 +85,7 @@ const char kGpuDriverBugListJson[] = LONG_STRING_CONST( { "name": "gpu driver bug list", // Please update the version number whenever you change this file. - "version": "2.14", + "version": "2.15", "entries": [ { "id": 1, @@ -605,6 +605,21 @@ const char kGpuDriverBugListJson[] = LONG_STRING_CONST( "features": [ "validate_multisample_buffer_allocation" ] + }, + { + "id": 40, + "cr_bugs": [290876], + "description": "Framebuffer discarding causes flickering on ARM", + "os": { + "type": "android" + }, + "gl_vendor": { + "op": "beginwith", + "value": "ARM" + }, + "features": [ + "disable_ext_discard_framebuffer" + ] } ] } diff --git a/gpu/config/gpu_driver_bug_workaround_type.h b/gpu/config/gpu_driver_bug_workaround_type.h index 3934d15..e9b3524 100644 --- a/gpu/config/gpu_driver_bug_workaround_type.h +++ b/gpu/config/gpu_driver_bug_workaround_type.h @@ -70,6 +70,8 @@ use_virtualized_gl_contexts) \ GPU_OP(VALIDATE_MULTISAMPLE_BUFFER_ALLOCATION, \ validate_multisample_buffer_allocation) \ + GPU_OP(DISABLE_EXT_DISCARD_FRAMEBUFFER, \ + disable_ext_discard_framebuffer) \ namespace gpu { |