Chromium Code Reviews| 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..820f44fd0ff8cd4989ac180b7b74ac60b97a7bf0 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" |
| @@ -107,6 +108,7 @@ class RasterWorkerPoolTaskImpl : public internal::RasterWorkerPoolTask { |
| TracedValue::FromValue(DataAsValue().release()), |
| "raster_mode", |
| TracedValue::FromValue(RasterModeAsValue(raster_mode_).release())); |
| + TRACE_EVENT_SYNTHETIC_DELAY_ACTIVATE("cc.RasterRequiredForActivation"); |
|
nduca
2013/11/24 19:45:18
so i'm worried about how many traces we've got on
Sami
2013/12/02 14:57:08
Yeah, we should be careful with this stuff in tigh
|
| devtools_instrumentation::ScopedLayerTask raster_task( |
| devtools_instrumentation::kRasterTask, layer_id_); |
| @@ -290,14 +292,18 @@ class RasterFinishedWorkerPoolTaskImpl : public internal::WorkerPoolTask { |
| Callback; |
| RasterFinishedWorkerPoolTaskImpl( |
| - const Callback& on_raster_finished_callback) |
| + const Callback& on_raster_finished_callback, |
| + bool required_for_activation) |
| : origin_loop_(base::MessageLoopProxy::current().get()), |
| - on_raster_finished_callback_(on_raster_finished_callback) { |
| + on_raster_finished_callback_(on_raster_finished_callback), |
| + required_for_activation_(required_for_activation) { |
| } |
| // Overridden from internal::WorkerPoolTask: |
| virtual void RunOnWorkerThread(unsigned thread_index) OVERRIDE { |
| TRACE_EVENT0("cc", "RasterFinishedWorkerPoolTaskImpl::RunOnWorkerThread"); |
| + if (required_for_activation_) |
| + TRACE_EVENT_SYNTHETIC_DELAY_APPLY("cc.RasterRequiredForActivation"); |
|
brianderson
2013/11/26 03:14:54
I'm not up-to-date on the lates TileManager code.
Sami
2013/12/02 14:57:08
The way it roughly works is that we first schedule
brianderson
2013/12/03 03:00:30
Ah ok. I see now. I'm assuming the graph is set up
|
| origin_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&RasterFinishedWorkerPoolTaskImpl::RunOnOriginThread, |
| @@ -314,6 +320,7 @@ class RasterFinishedWorkerPoolTaskImpl : public internal::WorkerPoolTask { |
| scoped_refptr<base::MessageLoopProxy> origin_loop_; |
| const Callback on_raster_finished_callback_; |
| + const bool required_for_activation_; |
| DISALLOW_COPY_AND_ASSIGN(RasterFinishedWorkerPoolTaskImpl); |
| }; |
| @@ -501,7 +508,8 @@ scoped_refptr<internal::WorkerPoolTask> |
| return make_scoped_refptr( |
| new RasterFinishedWorkerPoolTaskImpl( |
| base::Bind(&RasterWorkerPool::OnRasterFinished, |
| - weak_ptr_factory_.GetWeakPtr()))); |
| + weak_ptr_factory_.GetWeakPtr()), |
| + false)); |
| } |
| scoped_refptr<internal::WorkerPoolTask> |
| @@ -509,7 +517,8 @@ scoped_refptr<internal::WorkerPoolTask> |
| return make_scoped_refptr( |
| new RasterFinishedWorkerPoolTaskImpl( |
| base::Bind(&RasterWorkerPool::OnRasterRequiredForActivationFinished, |
| - weak_ptr_factory_.GetWeakPtr()))); |
| + weak_ptr_factory_.GetWeakPtr()), |
| + true)); |
| } |
| void RasterWorkerPool::OnRasterFinished( |