Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(72)

Side by Side Diff: cc/trees/thread_proxy.cc

Issue 14898002: Add LayerTreeHostSettings for synchronous compositor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/thread_proxy.h" 5 #include "cc/trees/thread_proxy.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "cc/base/thread.h" 10 #include "cc/base/thread.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 begin_frame_completion_event_on_impl_thread_(NULL), 55 begin_frame_completion_event_on_impl_thread_(NULL),
56 readback_request_on_impl_thread_(NULL), 56 readback_request_on_impl_thread_(NULL),
57 commit_completion_event_on_impl_thread_(NULL), 57 commit_completion_event_on_impl_thread_(NULL),
58 completion_event_for_commit_held_on_tree_activation_(NULL), 58 completion_event_for_commit_held_on_tree_activation_(NULL),
59 texture_acquisition_completion_event_on_impl_thread_(NULL), 59 texture_acquisition_completion_event_on_impl_thread_(NULL),
60 next_frame_is_newly_committed_frame_on_impl_thread_(false), 60 next_frame_is_newly_committed_frame_on_impl_thread_(false),
61 render_vsync_enabled_(layer_tree_host->settings().render_vsync_enabled), 61 render_vsync_enabled_(layer_tree_host->settings().render_vsync_enabled),
62 render_vsync_notification_enabled_( 62 render_vsync_notification_enabled_(
63 layer_tree_host->settings().render_vsync_notification_enabled), 63 layer_tree_host->settings().render_vsync_notification_enabled),
64 vsync_client_(NULL), 64 vsync_client_(NULL),
65 enable_synchronous_compositing_(
66 layer_tree_host->settings().enable_synchronous_compositing),
65 inside_draw_(false), 67 inside_draw_(false),
66 defer_commits_(false), 68 defer_commits_(false),
67 renew_tree_priority_on_impl_thread_pending_(false) { 69 renew_tree_priority_on_impl_thread_pending_(false) {
68 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy"); 70 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy");
69 DCHECK(IsMainThread()); 71 DCHECK(IsMainThread());
70 DCHECK(layer_tree_host_); 72 DCHECK(layer_tree_host_);
71 } 73 }
72 74
73 ThreadProxy::~ThreadProxy() { 75 ThreadProxy::~ThreadProxy() {
74 TRACE_EVENT0("cc", "ThreadProxy::~ThreadProxy"); 76 TRACE_EVENT0("cc", "ThreadProxy::~ThreadProxy");
(...skipping 1032 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 DCHECK(IsImplThread()); 1109 DCHECK(IsImplThread());
1108 layer_tree_host_impl_ = layer_tree_host_->CreateLayerTreeHostImpl(this); 1110 layer_tree_host_impl_ = layer_tree_host_->CreateLayerTreeHostImpl(this);
1109 const base::TimeDelta display_refresh_interval = 1111 const base::TimeDelta display_refresh_interval =
1110 base::TimeDelta::FromMicroseconds( 1112 base::TimeDelta::FromMicroseconds(
1111 base::Time::kMicrosecondsPerSecond / 1113 base::Time::kMicrosecondsPerSecond /
1112 layer_tree_host_->settings().refresh_rate); 1114 layer_tree_host_->settings().refresh_rate);
1113 scoped_ptr<FrameRateController> frame_rate_controller; 1115 scoped_ptr<FrameRateController> frame_rate_controller;
1114 if (render_vsync_enabled_) { 1116 if (render_vsync_enabled_) {
1115 if (render_vsync_notification_enabled_) { 1117 if (render_vsync_notification_enabled_) {
1116 frame_rate_controller.reset( 1118 frame_rate_controller.reset(
1117 new FrameRateController(VSyncTimeSource::Create(this))); 1119 new FrameRateController(VSyncTimeSource::Create(
1120 this,
1121 enable_synchronous_compositing_ ?
1122 VSyncTimeSource::DISABLE_SYNCHRONOUSLY :
1123 VSyncTimeSource::DISABLE_ON_NEXT_TICK)));
1118 } else { 1124 } else {
1119 frame_rate_controller.reset( 1125 frame_rate_controller.reset(
1120 new FrameRateController(DelayBasedTimeSource::Create( 1126 new FrameRateController(DelayBasedTimeSource::Create(
1121 display_refresh_interval, Proxy::ImplThread()))); 1127 display_refresh_interval, Proxy::ImplThread())));
1122 } 1128 }
1123 } else { 1129 } else {
1124 frame_rate_controller.reset(new FrameRateController(Proxy::ImplThread())); 1130 frame_rate_controller.reset(new FrameRateController(Proxy::ImplThread()));
1125 } 1131 }
1126 const LayerTreeSettings& settings = layer_tree_host_->settings(); 1132 const LayerTreeSettings& settings = layer_tree_host_->settings();
1127 SchedulerSettings scheduler_settings; 1133 SchedulerSettings scheduler_settings;
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 1373
1368 void ThreadProxy::DidReceiveLastInputEventForVSync( 1374 void ThreadProxy::DidReceiveLastInputEventForVSync(
1369 base::TimeTicks frame_time) { 1375 base::TimeTicks frame_time) {
1370 if (render_vsync_notification_enabled_) { 1376 if (render_vsync_notification_enabled_) {
1371 TRACE_EVENT0("cc", "ThreadProxy::DidReceiveLastInputEventForVSync"); 1377 TRACE_EVENT0("cc", "ThreadProxy::DidReceiveLastInputEventForVSync");
1372 DidVSync(frame_time); 1378 DidVSync(frame_time);
1373 } 1379 }
1374 } 1380 }
1375 1381
1376 } // namespace cc 1382 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698