summaryrefslogtreecommitdiffstats
path: root/cc/trees/layer_tree_settings.cc
diff options
context:
space:
mode:
authorkhushalsagar <khushalsagar@chromium.org>2016-03-08 14:46:15 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-08 22:47:40 +0000
commit683c197c138288b04557257369b4ac15c5421f11 (patch)
treec786e92ce43a3652a168c1843100f8e17239bfd3 /cc/trees/layer_tree_settings.cc
parent15ab7da28b3d2e6391f58dda69b3407b4d207778 (diff)
downloadchromium_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.cc3
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;
}