diff options
author | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-18 19:56:09 +0000 |
---|---|---|
committer | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-18 19:56:09 +0000 |
commit | b17906c16e1af9c7d94f9f9dbc5e8eb40c9a16f0 (patch) | |
tree | f6f18b7c4fc88355ff81ae90195ef16d30c25c92 /cc/debug | |
parent | 634e598ba9054fc75188411f101a5014c78da194 (diff) | |
download | chromium_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.h | 93 |
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_ |