Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 679e0e76a083e0fb2b4a9034928d589b80717ce8..36c71cee823e9594244303d25a7fad1048859003 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -1503,6 +1503,8 @@ bool LayerTreeHostImpl::SwapBuffers(const LayerTreeHostImpl::FrameData& frame) { |
void LayerTreeHostImpl::SetNeedsBeginFrame(bool enable) { |
if (output_surface_) |
output_surface_->SetNeedsBeginFrame(enable); |
+ else |
+ DCHECK(!enable); |
} |
void LayerTreeHostImpl::WillBeginImplFrame(const BeginFrameArgs& args) { |
@@ -1886,20 +1888,18 @@ bool LayerTreeHostImpl::InitializeRenderer( |
GetRendererCapabilities().allow_rasterize_on_demand); |
} |
- if (!settings_.throttle_frame_production) { |
- // Disable VSync |
- output_surface->SetThrottleFrameProduction(false); |
- } else if (!settings_.begin_impl_frame_scheduling_enabled) { |
- // Setup BeginFrameEmulation if it's not supported natively |
- const base::TimeDelta display_refresh_interval = |
- base::TimeDelta::FromMicroseconds( |
- base::Time::kMicrosecondsPerSecond / |
- settings_.refresh_rate); |
+ // Initialize vsync parameters to sane values. |
+ const base::TimeDelta display_refresh_interval = |
+ base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond / |
+ settings_.refresh_rate); |
+ CommitVSyncParameters(base::TimeTicks(), display_refresh_interval); |
- output_surface->InitializeBeginFrameEmulation( |
- proxy_->ImplThreadTaskRunner(), |
- display_refresh_interval); |
- } |
+ // TODO(brianderson): Don't use a hard-coded parent draw time. |
+ base::TimeDelta parent_draw_time = |
+ output_surface->capabilities().adjust_deadline_for_parent |
+ ? BeginFrameArgs::DefaultDeadlineAdjustment() |
+ : base::TimeDelta(); |
+ client_->SetEstimatedParentDrawTime(parent_draw_time); |
int max_frames_pending = |
output_surface->capabilities().max_frames_pending; |
@@ -1915,6 +1915,11 @@ bool LayerTreeHostImpl::InitializeRenderer( |
return true; |
} |
+void LayerTreeHostImpl::CommitVSyncParameters(base::TimeTicks timebase, |
+ base::TimeDelta interval) { |
+ client_->CommitVSyncParameters(timebase, interval); |
+} |
+ |
void LayerTreeHostImpl::DeferredInitialize() { |
DCHECK(output_surface_->capabilities().deferred_gl_initialization); |
DCHECK(settings_.impl_side_painting); |