Index: content/browser/gpu_process_host.cc |
diff --git a/content/browser/gpu_process_host.cc b/content/browser/gpu_process_host.cc |
index 900abff612c45148c4b9aa249beec05d80d8d280..bb1f4ade9528345746d727e50dbccad01b2399fa 100644 |
--- a/content/browser/gpu_process_host.cc |
+++ b/content/browser/gpu_process_host.cc |
@@ -102,10 +102,12 @@ class GpuMainThread : public base::Thread { |
}; |
// static |
-GpuProcessHost* GpuProcessHost::Create(int host_id) { |
+GpuProcessHost* GpuProcessHost::Create( |
+ int host_id, |
+ const GpuFeatureFlags& gpu_feature_flags) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- GpuProcessHost* host = new GpuProcessHost(host_id); |
+ GpuProcessHost* host = new GpuProcessHost(host_id, gpu_feature_flags); |
if (!host->Init()) { |
delete host; |
return NULL; |
@@ -124,9 +126,12 @@ GpuProcessHost* GpuProcessHost::FromID(int host_id) { |
return g_hosts_by_id.Lookup(host_id); |
} |
-GpuProcessHost::GpuProcessHost(int host_id) |
+GpuProcessHost::GpuProcessHost( |
+ int host_id, |
+ const GpuFeatureFlags& gpu_feature_flags) |
: BrowserChildProcessHost(GPU_PROCESS, NULL), |
- host_id_(host_id) { |
+ host_id_(host_id), |
+ gpu_feature_flags_(gpu_feature_flags) { |
g_hosts_by_id.AddWithID(this, host_id_); |
} |
@@ -296,10 +301,15 @@ bool GpuProcessHost::LaunchGpuProcess() { |
switches::kLoggingLevel, |
switches::kNoGpuSandbox, |
switches::kNoSandbox, |
+ switches::kDisableGLMultisampling, |
}; |
cmd_line->CopySwitchesFrom(browser_command_line, kSwitchNames, |
arraysize(kSwitchNames)); |
+ if (gpu_feature_flags_.flags() & GpuFeatureFlags::kGpuFeatureMultisampling) { |
+ cmd_line->AppendSwitch(switches::kDisableGLMultisampling); |
+ } |
+ |
// If specified, prepend a launcher program to the command line. |
if (!gpu_launcher.empty()) |
cmd_line->PrependWrapper(gpu_launcher); |