Index: content/browser/compositor/gpu_process_transport_factory.cc |
diff --git a/content/browser/compositor/gpu_process_transport_factory.cc b/content/browser/compositor/gpu_process_transport_factory.cc |
index 23ba5e3cf3db70556acbc41e4e93403ec67fb6da..96e551b6c8402ccedcd82cf70ec810efff9b1e43 100644 |
--- a/content/browser/compositor/gpu_process_transport_factory.cc |
+++ b/content/browser/compositor/gpu_process_transport_factory.cc |
@@ -199,6 +199,18 @@ GpuProcessTransportFactory::GpuProcessTransportFactory() |
frame_sink_manager_host_ = base::MakeUnique<FrameSinkManagerHost>(); |
frame_sink_manager_host_->ConnectToFrameSinkManager(); |
+ base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); |
+ if (command_line->HasSwitch(switches::kDisableGpuVsync)) { |
+ std::string display_vsyn_string = |
danakj
2017/05/04 15:36:36
vsync
Alex Z.
2017/05/04 18:41:56
Done.
|
+ command_line->GetSwitchValueASCII(switches::kDisableGpuVsync); |
+ // See comments in gl_switches about this flag. The browser compositor |
+ // is only unthrottled when "gpu" or no switch value is passed, as it |
+ // is driven directly by the display compositor. |
+ if (display_vsyn_string != "beginframe") { |
+ disable_display_vsync_ = true; |
+ } |
+ } |
+ |
task_graph_runner_->Start("CompositorTileWorker1", |
base::SimpleThread::Options()); |
#if defined(OS_WIN) |
@@ -551,7 +563,7 @@ void GpuProcessTransportFactory::EstablishedGpuChannel( |
std::unique_ptr<GpuVSyncBeginFrameSource> gpu_vsync_begin_frame_source; |
if (!begin_frame_source) { |
- if (!compositor->GetRendererSettings().disable_display_vsync) { |
+ if (!disable_display_vsync_) { |
if (gpu_vsync_control && IsGpuVSyncSignalSupported()) { |
gpu_vsync_begin_frame_source = |
base::MakeUnique<GpuVSyncBeginFrameSource>(gpu_vsync_control); |