summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer
diff options
context:
space:
mode:
authorkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-09 21:38:35 +0000
committerkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-09 21:38:35 +0000
commit8f095c311e523f91b74646a163b24433596475f9 (patch)
treec51794c1776a6f068ea71037ed12bc26885c88b8 /gpu/command_buffer
parent39d334e576dc1ecd770c0c826faa1bcb2c3adada (diff)
downloadchromium_src-8f095c311e523f91b74646a163b24433596475f9.zip
chromium_src-8f095c311e523f91b74646a163b24433596475f9.tar.gz
chromium_src-8f095c311e523f91b74646a163b24433596475f9.tar.bz2
Work around graphics hangs on MacBook Airs with Intel GPUs by calling glFinish after each frame displayed on the browser side.
BUG=123409 TEST=tested manually with WebGL Aquarium and clickCycle script from bug report Review URL: https://chromiumcodereview.appspot.com/10382069 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136131 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer')
-rw-r--r--gpu/command_buffer/service/gpu_switches.cc6
-rw-r--r--gpu/command_buffer/service/gpu_switches.h1
2 files changed, 7 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/gpu_switches.cc b/gpu/command_buffer/service/gpu_switches.cc
index 3081318..c38ecc0 100644
--- a/gpu/command_buffer/service/gpu_switches.cc
+++ b/gpu/command_buffer/service/gpu_switches.cc
@@ -29,6 +29,11 @@ const char kEnableGPUDebugging[] = "enable-gpu-debugging";
// Enforce GL minimums.
const char kEnforceGLMinimums[] = "enforce-gl-minimums";
+// Force the use of a workaround for graphics hangs seen on certain
+// Mac OS systems. Enabled by default (and can't be disabled) on known
+// affected systems.
+const char kForceGLFinishWorkaround[] = "force-glfinish-workaround";
+
const char* kGpuSwitches[] = {
kCompileShaderAlwaysSucceeds,
kDisableGLErrorLimit,
@@ -37,6 +42,7 @@ const char* kGpuSwitches[] = {
kEnableGPUCommandLogging,
kEnableGPUDebugging,
kEnforceGLMinimums,
+ kForceGLFinishWorkaround,
};
const int kNumGpuSwitches = arraysize(kGpuSwitches);
diff --git a/gpu/command_buffer/service/gpu_switches.h b/gpu/command_buffer/service/gpu_switches.h
index 388b39a..2d64652 100644
--- a/gpu/command_buffer/service/gpu_switches.h
+++ b/gpu/command_buffer/service/gpu_switches.h
@@ -19,6 +19,7 @@ GPU_EXPORT extern const char kDisableGpuDriverBugWorkarounds[];
GPU_EXPORT extern const char kEnableGPUCommandLogging[];
GPU_EXPORT extern const char kEnableGPUDebugging[];
GPU_EXPORT extern const char kEnforceGLMinimums[];
+GPU_EXPORT extern const char kForceGLFinishWorkaround[];
GPU_EXPORT extern const char* kGpuSwitches[];
GPU_EXPORT extern const int kNumGpuSwitches;