diff options
author | khushalsagar <khushalsagar@chromium.org> | 2016-03-08 14:46:15 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-08 22:47:40 +0000 |
commit | 683c197c138288b04557257369b4ac15c5421f11 (patch) | |
tree | c786e92ce43a3652a168c1843100f8e17239bfd3 /cc/trees/layer_tree_settings.cc | |
parent | 15ab7da28b3d2e6391f58dda69b3407b4d207778 (diff) | |
download | chromium_src-683c197c138288b04557257369b4ac15c5421f11.zip chromium_src-683c197c138288b04557257369b4ac15c5421f11.tar.gz chromium_src-683c197c138288b04557257369b4ac15c5421f11.tar.bz2 |
cc: Fix for releasing output surface during commit.
In the remote compositor we can get into a state where the LTH on the
client requests a BeginMainFrame and then releases the output surface.
The server will still send a commit but we can't push this commit till
the client initializes a new output surface.
At the same time the scheduler will not request a new output surface
till it clears the pipeline of the previous commit.
This change adds a setting to the Scheduler to allow it to request a new
output surface, while there is a commit pending. The RemoteChannelImpl
queues any protos received if the output is released and process them
when a new output surface is initialized.
BUG=586210
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1691143002
Cr-Commit-Position: refs/heads/master@{#379947}
Diffstat (limited to 'cc/trees/layer_tree_settings.cc')
-rw-r--r-- | cc/trees/layer_tree_settings.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/cc/trees/layer_tree_settings.cc b/cc/trees/layer_tree_settings.cc index 40606ed..d9062e3 100644 --- a/cc/trees/layer_tree_settings.cc +++ b/cc/trees/layer_tree_settings.cc @@ -101,6 +101,7 @@ LayerTreeSettings::LayerTreeSettings() image_decode_tasks_enabled(false), use_compositor_animation_timelines(true), wait_for_beginframe_interval(true), + abort_commit_before_output_surface_creation(true), use_mouse_wheel_gestures(false), max_staging_buffer_usage_in_bytes(32 * 1024 * 1024), memory_policy_(64 * 1024 * 1024, @@ -322,6 +323,8 @@ SchedulerSettings LayerTreeSettings::ToSchedulerSettings() const { scheduler_settings.throttle_frame_production = wait_for_beginframe_interval; scheduler_settings.background_frame_interval = base::TimeDelta::FromSecondsD(1.0 / background_animation_rate); + scheduler_settings.abort_commit_before_output_surface_creation = + abort_commit_before_output_surface_creation; return scheduler_settings; } |