| Index: cc/base/devtools_instrumentation.h
|
| diff --git a/cc/base/devtools_instrumentation.h b/cc/base/devtools_instrumentation.h
|
| index 40e2d9efd708851bbb56a374b094ec57048c9008..6ea2f7a454c42eeafc1b1bfc35c13433a8896702 100644
|
| --- a/cc/base/devtools_instrumentation.h
|
| +++ b/cc/base/devtools_instrumentation.h
|
| @@ -58,9 +58,14 @@ class CC_BASE_EXPORT ScopedLayerTask {
|
| class CC_BASE_EXPORT ScopedImageDecodeTask {
|
| public:
|
| enum Type { SOFTWARE, GPU };
|
| -
|
| - ScopedImageDecodeTask(const void* imagePtr, Type type)
|
| - : type_(type), start_time_(base::TimeTicks::Now()) {
|
| + enum DecodeTaskType { IN_RASTER, CHECKER_IMAGING, JS_DECODE_API };
|
| +
|
| + ScopedImageDecodeTask(const void* imagePtr,
|
| + Type type,
|
| + DecodeTaskType task_type)
|
| + : type_(type),
|
| + task_type_(task_type),
|
| + start_time_(base::TimeTicks::Now()) {
|
| TRACE_EVENT_BEGIN1(internal::kCategory, internal::kImageDecodeTask,
|
| internal::kPixelRefId,
|
| reinterpret_cast<uint64_t>(imagePtr));
|
| @@ -68,20 +73,54 @@ class CC_BASE_EXPORT ScopedImageDecodeTask {
|
| ~ScopedImageDecodeTask() {
|
| TRACE_EVENT_END0(internal::kCategory, internal::kImageDecodeTask);
|
| base::TimeDelta duration = base::TimeTicks::Now() - start_time_;
|
| - switch (type_) {
|
| - case SOFTWARE:
|
| - UMA_HISTOGRAM_COUNTS_1M("Renderer4.ImageDecodeTaskDurationUs.Software",
|
| - duration.InMicroseconds());
|
| + switch (task_type_) {
|
| + case IN_RASTER:
|
| + switch (type_) {
|
| + case SOFTWARE:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.Software",
|
| + duration.InMicroseconds());
|
| + break;
|
| + case GPU:
|
| + UMA_HISTOGRAM_COUNTS_1M("Renderer4.ImageDecodeTaskDurationUs.Gpu",
|
| + duration.InMicroseconds());
|
| + break;
|
| + }
|
| + break;
|
| + case CHECKER_IMAGING:
|
| + switch (type_) {
|
| + case SOFTWARE:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.CheckerImaging.Software",
|
| + duration.InMicroseconds());
|
| + break;
|
| + case GPU:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.CheckerImaging.Gpu",
|
| + duration.InMicroseconds());
|
| + break;
|
| + }
|
| break;
|
| - case GPU:
|
| - UMA_HISTOGRAM_COUNTS_1M("Renderer4.ImageDecodeTaskDurationUs.Gpu",
|
| - duration.InMicroseconds());
|
| + case JS_DECODE_API:
|
| + switch (type_) {
|
| + case SOFTWARE:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.JSDecode.Software",
|
| + duration.InMicroseconds());
|
| + break;
|
| + case GPU:
|
| + UMA_HISTOGRAM_COUNTS_1M(
|
| + "Renderer4.ImageDecodeTaskDurationUs.JSDecode.Gpu",
|
| + duration.InMicroseconds());
|
| + break;
|
| + }
|
| break;
|
| }
|
| }
|
|
|
| private:
|
| const Type type_;
|
| + const DecodeTaskType task_type_;
|
| const base::TimeTicks start_time_;
|
| DISALLOW_COPY_AND_ASSIGN(ScopedImageDecodeTask);
|
| };
|
|
|