| Index: cc/resources/raster_worker_pool.cc
|
| diff --git a/cc/resources/raster_worker_pool.cc b/cc/resources/raster_worker_pool.cc
|
| index 67c548f19df92fe1f0990475689a157718a7d392..60a780b2e75702dc0ca2266c618b37bf582fbabb 100644
|
| --- a/cc/resources/raster_worker_pool.cc
|
| +++ b/cc/resources/raster_worker_pool.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "cc/resources/raster_worker_pool.h"
|
|
|
| +#include "base/debug/trace_event_synthetic_delay.h"
|
| #include "base/json/json_writer.h"
|
| #include "base/metrics/histogram.h"
|
| #include "base/values.h"
|
| @@ -18,6 +19,10 @@ namespace cc {
|
|
|
| namespace {
|
|
|
| +// Synthetic delay for raster tasks that are required for activation. Global to
|
| +// avoid static initializer on critical path.
|
| +base::debug::TraceEventSyntheticDelay* g_raster_required_for_activation_delay;
|
| +
|
| // Subclass of Allocator that takes a suitably allocated pointer and uses
|
| // it as the pixel memory for the bitmap.
|
| class IdentityAllocator : public SkBitmap::Allocator {
|
| @@ -191,6 +196,7 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask {
|
| }
|
|
|
| ChangeBitmapConfigIfNeeded(bitmap, buffer);
|
| + g_raster_required_for_activation_delay->End();
|
|
|
| return true;
|
| }
|
| @@ -466,6 +472,9 @@ RasterWorkerPool::RasterWorkerPool(ResourceProvider* resource_provider,
|
| client_(NULL),
|
| resource_provider_(resource_provider),
|
| weak_ptr_factory_(this) {
|
| + g_raster_required_for_activation_delay =
|
| + base::debug::TraceEventSyntheticDelay::Lookup(
|
| + "cc.RasterRequiredForActivation");
|
| }
|
|
|
| RasterWorkerPool::~RasterWorkerPool() {
|
| @@ -487,6 +496,10 @@ void RasterWorkerPool::SetRasterTasks(RasterTask::Queue* queue) {
|
| raster_tasks_.swap(queue->tasks_);
|
| raster_tasks_required_for_activation_.swap(
|
| queue->tasks_required_for_activation_);
|
| + if (!raster_tasks_required_for_activation_.empty()) {
|
| + g_raster_required_for_activation_delay->ResetAndBeginMultiple(
|
| + raster_tasks_required_for_activation_.size());
|
| + }
|
| }
|
|
|
| bool RasterWorkerPool::IsRasterTaskRequiredForActivation(
|
|
|