summaryrefslogtreecommitdiffstats
path: root/cc/debug
diff options
context:
space:
mode:
authorreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-18 19:56:09 +0000
committerreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-18 19:56:09 +0000
commitb17906c16e1af9c7d94f9f9dbc5e8eb40c9a16f0 (patch)
treef6f18b7c4fc88355ff81ae90195ef16d30c25c92 /cc/debug
parent634e598ba9054fc75188411f101a5014c78da194 (diff)
downloadchromium_src-b17906c16e1af9c7d94f9f9dbc5e8eb40c9a16f0.zip
chromium_src-b17906c16e1af9c7d94f9f9dbc5e8eb40c9a16f0.tar.gz
chromium_src-b17906c16e1af9c7d94f9f9dbc5e8eb40c9a16f0.tar.bz2
cc: Move raster task related trace events into debug/frame_viewer_instrumentation.h.
These trace events are used by the trace viewer and need to use specific names and parameters to work correctly. BUG= Review URL: https://codereview.chromium.org/242523002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264833 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/debug')
-rw-r--r--cc/debug/frame_viewer_instrumentation.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/cc/debug/frame_viewer_instrumentation.h b/cc/debug/frame_viewer_instrumentation.h
new file mode 100644
index 0000000..16cf433
--- /dev/null
+++ b/cc/debug/frame_viewer_instrumentation.h
@@ -0,0 +1,93 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CC_DEBUG_FRAME_VIEWER_INSTRUMENTATION_H_
+#define CC_DEBUG_FRAME_VIEWER_INSTRUMENTATION_H_
+
+#include "base/debug/trace_event.h"
+#include "cc/resources/tile.h"
+
+namespace cc {
+namespace frame_viewer_instrumentation {
+namespace internal {
+
+const char kCategory[] = "cc";
+const char kTileData[] = "tileData";
+const char kLayerId[] = "layerId";
+const char kTileId[] = "tileId";
+const char kTileResolution[] = "tileResolution";
+const char kSourceFrameNumber[] = "sourceFrameNumber";
+const char kRasterMode[] = "rasterMode";
+
+const char kAnalyzeTask[] = "AnalyzeTask";
+const char kRasterTask[] = "RasterTask";
+
+scoped_ptr<base::Value> TileDataAsValue(const void* tile_id,
+ TileResolution tile_resolution,
+ int source_frame_number,
+ int layer_id) {
+ scoped_ptr<base::DictionaryValue> res(new base::DictionaryValue);
+ res->Set(internal::kTileId, TracedValue::CreateIDRef(tile_id).release());
+ res->Set(internal::kTileResolution,
+ TileResolutionAsValue(tile_resolution).release());
+ res->SetInteger(internal::kSourceFrameNumber, source_frame_number);
+ res->SetInteger(internal::kLayerId, layer_id);
+ return res.PassAs<base::Value>();
+}
+
+} // namespace internal
+
+class ScopedAnalyzeTask {
+ public:
+ ScopedAnalyzeTask(const void* tile_id,
+ TileResolution tile_resolution,
+ int source_frame_number,
+ int layer_id) {
+ TRACE_EVENT_BEGIN1(
+ internal::kCategory,
+ internal::kAnalyzeTask,
+ internal::kTileData,
+ TracedValue::FromValue(internal::TileDataAsValue(tile_id,
+ tile_resolution,
+ source_frame_number,
+ layer_id).release()));
+ }
+ ~ScopedAnalyzeTask() {
+ TRACE_EVENT_END0(internal::kCategory, internal::kAnalyzeTask);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ScopedAnalyzeTask);
+};
+
+class ScopedRasterTask {
+ public:
+ ScopedRasterTask(const void* tile_id,
+ TileResolution tile_resolution,
+ int source_frame_number,
+ int layer_id,
+ RasterMode raster_mode) {
+ TRACE_EVENT_BEGIN2(
+ internal::kCategory,
+ internal::kRasterTask,
+ internal::kTileData,
+ TracedValue::FromValue(internal::TileDataAsValue(tile_id,
+ tile_resolution,
+ source_frame_number,
+ layer_id).release()),
+ internal::kRasterMode,
+ TracedValue::FromValue(RasterModeAsValue(raster_mode).release()));
+ }
+ ~ScopedRasterTask() {
+ TRACE_EVENT_END0(internal::kCategory, internal::kRasterTask);
+ }
+
+ private:
+ DISALLOW_COPY_AND_ASSIGN(ScopedRasterTask);
+};
+
+} // namespace frame_viewer_instrumentation
+} // namespace cc
+
+#endif // CC_DEBUG_FRAME_VIEWER_INSTRUMENTATION_H_