Index: cc/trees/layer_tree_host.cc |
diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc |
index 8a3e644bb1109fe7348501cde4fee91fd810f34e..9d2be1080d67bffeb3920bc777dcc17b2d17bd4f 100644 |
--- a/cc/trees/layer_tree_host.cc |
+++ b/cc/trees/layer_tree_host.cc |
@@ -21,6 +21,7 @@ |
#include "cc/animation/layer_animation_controller.h" |
#include "cc/base/math_util.h" |
#include "cc/debug/devtools_instrumentation.h" |
+#include "cc/debug/frame_viewer_instrumentation.h" |
#include "cc/debug/rendering_stats_instrumentation.h" |
#include "cc/input/layer_selection_bound.h" |
#include "cc/input/page_scale_animation.h" |
@@ -55,6 +56,7 @@ scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( |
LayerTreeHostClient* client, |
SharedBitmapManager* shared_bitmap_manager, |
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ TaskGraphRunner* task_graph_runner, |
const LayerTreeSettings& settings, |
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, |
@@ -62,7 +64,8 @@ scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( |
DCHECK(main_task_runner.get()); |
DCHECK(impl_task_runner.get()); |
scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( |
- client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); |
+ client, shared_bitmap_manager, gpu_memory_buffer_manager, |
+ task_graph_runner, settings)); |
layer_tree_host->InitializeThreaded(main_task_runner, |
impl_task_runner, |
external_begin_frame_source.Pass()); |
@@ -74,11 +77,13 @@ scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( |
LayerTreeHostSingleThreadClient* single_thread_client, |
SharedBitmapManager* shared_bitmap_manager, |
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ TaskGraphRunner* task_graph_runner, |
const LayerTreeSettings& settings, |
scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, |
scoped_ptr<BeginFrameSource> external_begin_frame_source) { |
scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( |
- client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); |
+ client, shared_bitmap_manager, gpu_memory_buffer_manager, |
+ task_graph_runner, settings)); |
layer_tree_host->InitializeSingleThreaded(single_thread_client, |
main_task_runner, |
external_begin_frame_source.Pass()); |
@@ -89,6 +94,7 @@ LayerTreeHost::LayerTreeHost( |
LayerTreeHostClient* client, |
SharedBitmapManager* shared_bitmap_manager, |
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ TaskGraphRunner* task_graph_runner, |
const LayerTreeSettings& settings) |
: micro_benchmark_controller_(this), |
next_ui_resource_id_(1), |
@@ -120,6 +126,7 @@ LayerTreeHost::LayerTreeHost( |
next_commit_forces_redraw_(false), |
shared_bitmap_manager_(shared_bitmap_manager), |
gpu_memory_buffer_manager_(gpu_memory_buffer_manager), |
+ task_graph_runner_(task_graph_runner), |
surface_id_namespace_(0u), |
next_surface_sequence_(1u) { |
if (settings_.accelerated_animation_enabled) |
@@ -268,6 +275,15 @@ void LayerTreeHost::FinishCommitOnImplThread(LayerTreeHostImpl* host_impl) { |
contents_texture_manager_->ReduceMemory(host_impl->resource_provider()); |
} |
+ bool is_new_trace; |
+ TRACE_EVENT_IS_NEW_TRACE(&is_new_trace); |
+ if (is_new_trace && |
+ frame_viewer_instrumentation::IsTracingLayerTreeSnapshots() && |
+ root_layer()) { |
+ LayerTreeHostCommon::CallFunctionForSubtree( |
+ root_layer(), [](Layer* layer) { layer->DidBeginTracing(); }); |
+ } |
+ |
LayerTreeImpl* sync_tree = host_impl->sync_tree(); |
if (next_commit_forces_redraw_) { |
@@ -420,17 +436,14 @@ void LayerTreeHost::DidFailToInitializeOutputSurface() { |
scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( |
LayerTreeHostImplClient* client) { |
DCHECK(proxy_->IsImplThread()); |
- scoped_ptr<LayerTreeHostImpl> host_impl = |
- LayerTreeHostImpl::Create(settings_, |
- client, |
- proxy_.get(), |
- rendering_stats_instrumentation_.get(), |
- shared_bitmap_manager_, |
- gpu_memory_buffer_manager_, |
- id_); |
+ scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create( |
+ settings_, client, proxy_.get(), rendering_stats_instrumentation_.get(), |
+ shared_bitmap_manager_, gpu_memory_buffer_manager_, task_graph_runner_, |
+ id_); |
host_impl->SetUseGpuRasterization(UseGpuRasterization()); |
shared_bitmap_manager_ = NULL; |
gpu_memory_buffer_manager_ = NULL; |
+ task_graph_runner_ = NULL; |
top_controls_manager_weak_ptr_ = |
host_impl->top_controls_manager()->AsWeakPtr(); |
input_handler_weak_ptr_ = host_impl->AsWeakPtr(); |