| Index: cc/raster_worker_pool.cc
|
| diff --git a/cc/raster_worker_pool.cc b/cc/raster_worker_pool.cc
|
| index 8eb92c209da3d368877d8bd47222ebf6c7b56948..51101efae17dddc87c82d5ed623f55ca6d0e4e5d 100644
|
| --- a/cc/raster_worker_pool.cc
|
| +++ b/cc/raster_worker_pool.cc
|
| @@ -40,11 +40,17 @@ void RunRasterTask(PicturePileImpl* picture_pile,
|
|
|
| void RunImageDecodeTask(skia::LazyPixelRef* pixel_ref, RenderingStats* stats) {
|
| TRACE_EVENT0("cc", "RunImageDecodeTask");
|
| - base::TimeTicks decode_begin_time = base::TimeTicks::Now();
|
| + base::TimeTicks decode_begin_time;
|
| + if (stats)
|
| + decode_begin_time = base::TimeTicks::Now();
|
| +
|
| pixel_ref->Decode();
|
| - stats->totalDeferredImageDecodeCount++;
|
| - stats->totalDeferredImageDecodeTime +=
|
| - base::TimeTicks::Now() - decode_begin_time;
|
| +
|
| + if (stats) {
|
| + stats->totalDeferredImageDecodeCount++;
|
| + stats->totalDeferredImageDecodeTime +=
|
| + base::TimeTicks::Now() - decode_begin_time;
|
| + }
|
| }
|
|
|
| const char* kRasterThreadNamePrefix = "CompositorRaster";
|
| @@ -90,9 +96,11 @@ void RasterWorkerPool::Thread::Init() {
|
| #endif
|
| }
|
|
|
| -RasterWorkerPool::RasterWorkerPool(size_t num_raster_threads)
|
| +RasterWorkerPool::RasterWorkerPool(
|
| + size_t num_raster_threads, bool record_rendering_stats)
|
| : is_running_(false),
|
| - raster_threads_need_sorting_(false) {
|
| + raster_threads_need_sorting_(false),
|
| + record_rendering_stats_(record_rendering_stats) {
|
| const std::string thread_name_prefix = kRasterThreadNamePrefix;
|
| while (raster_threads_.size() < num_raster_threads) {
|
| int thread_number = raster_threads_.size() + 1;
|
| @@ -158,7 +166,7 @@ void RasterWorkerPool::PostRasterTaskAndReply(PicturePileImpl* picture_pile,
|
| buffer,
|
| rect,
|
| contents_scale,
|
| - &task->rendering_stats_),
|
| + record_rendering_stats_ ? &task->rendering_stats_ : NULL),
|
| base::Bind(&RasterWorkerPool::OnRasterTaskCompleted,
|
| base::Unretained(this),
|
| base::Unretained(task),
|
| @@ -174,7 +182,8 @@ void RasterWorkerPool::PostImageDecodeTaskAndReply(
|
|
|
| task->thread_->message_loop_proxy()->PostTaskAndReply(
|
| FROM_HERE,
|
| - base::Bind(&RunImageDecodeTask, pixel_ref, &task->rendering_stats_),
|
| + base::Bind(&RunImageDecodeTask, pixel_ref,
|
| + record_rendering_stats_ ? &task->rendering_stats_ : NULL),
|
| base::Bind(&RasterWorkerPool::OnTaskCompleted,
|
| base::Unretained(this),
|
| base::Unretained(task),
|
| @@ -182,6 +191,7 @@ void RasterWorkerPool::PostImageDecodeTaskAndReply(
|
| }
|
|
|
| void RasterWorkerPool::GetRenderingStats(RenderingStats* stats) {
|
| + DCHECK(record_rendering_stats_);
|
| stats->totalRasterizeTime = base::TimeDelta();
|
| stats->totalPixelsRasterized = 0;
|
| stats->totalDeferredImageDecodeCount = 0;
|
|
|