Home | History | Annotate | Download | only in debug
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CC_DEBUG_BENCHMARK_INSTRUMENTATION_H_
      6 #define CC_DEBUG_BENCHMARK_INSTRUMENTATION_H_
      7 
      8 #include "cc/debug/rendering_stats.h"
      9 
     10 namespace cc {
     11 namespace benchmark_instrumentation {
     12 
     13 // Please do not change the trace events in this file without updating
     14 // tools/perf/measurements/rendering_stats.py accordingly.
     15 // The benchmarks search for events and their arguments by name.
     16 
     17 namespace internal {
     18 const char kCategory[] = "cc,benchmark";
     19 const char kBeginFrameId[] = "begin_frame_id";
     20 }  // namespace internal
     21 
     22 const char kSendBeginFrame[] = "ThreadProxy::ScheduledActionSendBeginMainFrame";
     23 const char kDoBeginFrame[] = "ThreadProxy::BeginMainFrame";
     24 
     25 class ScopedBeginFrameTask {
     26  public:
     27   ScopedBeginFrameTask(const char* event_name, unsigned int begin_frame_id)
     28       : event_name_(event_name) {
     29     TRACE_EVENT_BEGIN1(internal::kCategory,
     30                        event_name_,
     31                        internal::kBeginFrameId,
     32                        begin_frame_id);
     33   }
     34   ~ScopedBeginFrameTask() {
     35     TRACE_EVENT_END0(internal::kCategory, event_name_);
     36   }
     37 
     38  private:
     39   const char* event_name_;
     40 
     41   DISALLOW_COPY_AND_ASSIGN(ScopedBeginFrameTask);
     42 };
     43 
     44 void IssueMainThreadRenderingStatsEvent(
     45     const RenderingStats::MainThreadRenderingStats& stats);
     46 void IssueImplThreadRenderingStatsEvent(
     47     const RenderingStats::ImplThreadRenderingStats& stats);
     48 
     49 }  // namespace benchmark_instrumentation
     50 }  // namespace cc
     51 
     52 #endif  // CC_DEBUG_BENCHMARK_INSTRUMENTATION_H_
     53