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 a8d4294bb418d6754becc31a19cb68ea73682e22..2c13fcbc861f58e298a6a9c073f3eca33c4574f4 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -6,6 +6,7 @@ |
#include <algorithm> |
#include <limits> |
+#include <map> |
#include "base/basictypes.h" |
#include "base/containers/hash_tables.h" |
@@ -24,6 +25,7 @@ |
#include "cc/debug/debug_rect_history.h" |
#include "cc/debug/devtools_instrumentation.h" |
#include "cc/debug/frame_rate_counter.h" |
+#include "cc/debug/frame_viewer_instrumentation.h" |
#include "cc/debug/paint_time_counter.h" |
#include "cc/debug/rendering_stats_instrumentation.h" |
#include "cc/debug/traced_value.h" |
@@ -168,14 +170,11 @@ scoped_ptr<LayerTreeHostImpl> LayerTreeHostImpl::Create( |
RenderingStatsInstrumentation* rendering_stats_instrumentation, |
SharedBitmapManager* shared_bitmap_manager, |
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ TaskGraphRunner* task_graph_runner, |
int id) { |
- return make_scoped_ptr(new LayerTreeHostImpl(settings, |
- client, |
- proxy, |
- rendering_stats_instrumentation, |
- shared_bitmap_manager, |
- gpu_memory_buffer_manager, |
- id)); |
+ return make_scoped_ptr(new LayerTreeHostImpl( |
+ settings, client, proxy, rendering_stats_instrumentation, |
+ shared_bitmap_manager, gpu_memory_buffer_manager, task_graph_runner, id)); |
} |
LayerTreeHostImpl::LayerTreeHostImpl( |
@@ -185,6 +184,7 @@ LayerTreeHostImpl::LayerTreeHostImpl( |
RenderingStatsInstrumentation* rendering_stats_instrumentation, |
SharedBitmapManager* shared_bitmap_manager, |
gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, |
+ TaskGraphRunner* task_graph_runner, |
int id) |
: client_(client), |
proxy_(proxy), |
@@ -223,6 +223,7 @@ LayerTreeHostImpl::LayerTreeHostImpl( |
micro_benchmark_controller_(this), |
shared_bitmap_manager_(shared_bitmap_manager), |
gpu_memory_buffer_manager_(gpu_memory_buffer_manager), |
+ task_graph_runner_(task_graph_runner), |
id_(id), |
requires_high_res_to_draw_(false), |
is_likely_to_require_a_draw_(false), |
@@ -1528,12 +1529,8 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame, |
{ |
TRACE_EVENT0("cc", "DrawLayers.FrameViewerTracing"); |
TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID( |
- TRACE_DISABLED_BY_DEFAULT("cc.debug") "," |
- TRACE_DISABLED_BY_DEFAULT("cc.debug.quads") "," |
- TRACE_DISABLED_BY_DEFAULT("devtools.timeline.layers"), |
- "cc::LayerTreeHostImpl", |
- id_, |
- AsValueWithFrame(frame)); |
+ frame_viewer_instrumentation::kCategoryLayerTree, |
+ "cc::LayerTreeHostImpl", id_, AsValueWithFrame(frame)); |
} |
const DrawMode draw_mode = GetDrawMode(); |
@@ -2034,8 +2031,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
*tile_task_worker_pool = BitmapTileTaskWorkerPool::Create( |
- task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
- resource_provider_.get()); |
+ task_runner, task_graph_runner_, resource_provider_.get()); |
return; |
} |
@@ -2044,7 +2040,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
*tile_task_worker_pool = GpuTileTaskWorkerPool::Create( |
- task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
+ task_runner, task_graph_runner_, |
static_cast<GpuRasterizer*>(rasterizer_.get())); |
return; |
} |
@@ -2068,7 +2064,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
single_thread_synchronous_task_graph_runner_.reset(new TaskGraphRunner); |
task_graph_runner = single_thread_synchronous_task_graph_runner_.get(); |
} else { |
- task_graph_runner = TileTaskWorkerPool::GetTaskGraphRunner(); |
+ task_graph_runner = task_graph_runner_; |
} |
*tile_task_worker_pool = ZeroCopyTileTaskWorkerPool::Create( |
@@ -2084,9 +2080,8 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
ResourcePool::Create(resource_provider_.get(), GL_TEXTURE_2D); |
*tile_task_worker_pool = OneCopyTileTaskWorkerPool::Create( |
- task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), |
- context_provider, resource_provider_.get(), |
- staging_resource_pool_.get()); |
+ task_runner, task_graph_runner_, context_provider, |
+ resource_provider_.get(), staging_resource_pool_.get()); |
return; |
} |
} |
@@ -2100,7 +2095,7 @@ void LayerTreeHostImpl::CreateResourceAndTileTaskWorkerPool( |
resource_provider_.get(), GL_TEXTURE_2D); |
*tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( |
- task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), context_provider, |
+ task_runner, task_graph_runner_, context_provider, |
resource_provider_.get(), |
GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), |
settings_.renderer_settings.refresh_rate)); |
@@ -3013,7 +3008,7 @@ static void CollectScrollDeltas(ScrollAndScaleSet* scroll_info, |
if (!scroll_delta.IsZero()) { |
LayerTreeHostCommon::ScrollUpdateInfo scroll; |
scroll.layer_id = layer_impl->id(); |
- scroll.scroll_delta = gfx::Vector2dF(scroll_delta.x(), scroll_delta.y()); |
+ scroll.scroll_delta = gfx::Vector2d(scroll_delta.x(), scroll_delta.y()); |
scroll_info->scrolls.push_back(scroll); |
} |
@@ -3247,19 +3242,18 @@ void LayerTreeHostImpl::AsValueWithFrameInto( |
MathUtil::AddToTracedValue("device_viewport_size", device_viewport_size_, |
state); |
- std::set<const Tile*> tiles; |
- active_tree_->GetAllTilesForTracing(&tiles); |
+ std::map<const Tile*, TilePriority> tile_map; |
+ active_tree_->GetAllTilesAndPrioritiesForTracing(&tile_map); |
if (pending_tree_) |
- pending_tree_->GetAllTilesForTracing(&tiles); |
+ pending_tree_->GetAllTilesAndPrioritiesForTracing(&tile_map); |
state->BeginArray("active_tiles"); |
- for (std::set<const Tile*>::const_iterator it = tiles.begin(); |
- it != tiles.end(); |
- ++it) { |
- const Tile* tile = *it; |
+ for (const auto& pair : tile_map) { |
+ const Tile* tile = pair.first; |
+ const TilePriority& priority = pair.second; |
state->BeginDictionary(); |
- tile->AsValueInto(state); |
+ tile->AsValueWithPriorityInto(priority, state); |
state->EndDictionary(); |
} |
state->EndArray(); |