| Index: gpu/command_buffer/service/gpu_tracer.h
 | 
| diff --git a/gpu/command_buffer/service/gpu_tracer.h b/gpu/command_buffer/service/gpu_tracer.h
 | 
| index 594a98ebcbdc3532bf2eae34206c9cc1546f005e..c8ac9d76b60339af790276713eef1bf56e03fe05 100644
 | 
| --- a/gpu/command_buffer/service/gpu_tracer.h
 | 
| +++ b/gpu/command_buffer/service/gpu_tracer.h
 | 
| @@ -6,13 +6,16 @@
 | 
|  #ifndef GPU_COMMAND_BUFFER_SERVICE_GPU_TRACER_H_
 | 
|  #define GPU_COMMAND_BUFFER_SERVICE_GPU_TRACER_H_
 | 
|  
 | 
| +#include <deque>
 | 
|  #include <string>
 | 
| +#include <vector>
 | 
|  
 | 
|  #include "base/basictypes.h"
 | 
|  #include "base/memory/scoped_ptr.h"
 | 
|  #include "base/memory/weak_ptr.h"
 | 
|  #include "base/threading/thread.h"
 | 
|  #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
 | 
| +#include "gpu/command_buffer/service/gpu_timing.h"
 | 
|  #include "gpu/gpu_export.h"
 | 
|  #include "ui/gl/gl_bindings.h"
 | 
|  
 | 
| @@ -33,28 +36,6 @@ enum GpuTracerSource {
 | 
|    NUM_TRACER_SOURCES
 | 
|  };
 | 
|  
 | 
| -enum GpuTracerType {
 | 
| -  kTracerTypeInvalid = -1,
 | 
| -
 | 
| -  kTracerTypeARBTimer,
 | 
| -  kTracerTypeDisjointTimer
 | 
| -};
 | 
| -
 | 
| -// Central accesser to CPU Time
 | 
| -class GPU_EXPORT CPUTime
 | 
| -    : public base::RefCounted<CPUTime> {
 | 
| - public:
 | 
| -  CPUTime();
 | 
| -
 | 
| -  virtual int64 GetCurrentTime();
 | 
| -
 | 
| - protected:
 | 
| -  virtual ~CPUTime();
 | 
| -  friend class base::RefCounted<CPUTime>;
 | 
| -
 | 
| -  DISALLOW_COPY_AND_ASSIGN(CPUTime);
 | 
| -};
 | 
| -
 | 
|  // Marker structure for a Trace.
 | 
|  struct TraceMarker {
 | 
|    TraceMarker(const std::string& category, const std::string& name);
 | 
| @@ -94,35 +75,27 @@ class GPU_EXPORT GPUTracer
 | 
|  
 | 
|   protected:
 | 
|    // Trace Processing.
 | 
| -  scoped_refptr<GPUTrace> CreateTrace(const std::string& category,
 | 
| -                                      const std::string& name);
 | 
|    virtual scoped_refptr<Outputter> CreateOutputter(const std::string& name);
 | 
| -  virtual scoped_refptr<CPUTime> CreateCPUTime();
 | 
| -  virtual GpuTracerType DetermineTracerType();
 | 
|    virtual void PostTask();
 | 
|  
 | 
|    void Process();
 | 
|    void ProcessTraces();
 | 
|  
 | 
| -  void CalculateTimerOffset();
 | 
|    void IssueProcessTask();
 | 
|  
 | 
|    scoped_refptr<Outputter> outputter_;
 | 
| -  scoped_refptr<CPUTime> cpu_time_;
 | 
|    std::vector<TraceMarker> markers_[NUM_TRACER_SOURCES];
 | 
|    std::deque<scoped_refptr<GPUTrace> > traces_;
 | 
|  
 | 
|    const unsigned char* gpu_trace_srv_category;
 | 
|    const unsigned char* gpu_trace_dev_category;
 | 
|    gles2::GLES2Decoder* decoder_;
 | 
| +  gpu::GPUTiming gpu_timing_;
 | 
|  
 | 
| -  int64 timer_offset_;
 | 
| -
 | 
| -  GpuTracerType tracer_type_;
 | 
| -  bool gpu_timing_synced_;
 | 
|    bool gpu_executing_;
 | 
|    bool process_posted_;
 | 
|  
 | 
| + private:
 | 
|    DISALLOW_COPY_AND_ASSIGN(GPUTracer);
 | 
|  };
 | 
|  
 | 
| @@ -166,6 +139,7 @@ class TraceOutputter : public Outputter {
 | 
|    base::Thread named_thread_;
 | 
|    uint64 local_trace_id_;
 | 
|  
 | 
| + private:
 | 
|    DISALLOW_COPY_AND_ASSIGN(TraceOutputter);
 | 
|  };
 | 
|  
 | 
| @@ -173,17 +147,15 @@ class GPU_EXPORT GPUTrace
 | 
|      : public base::RefCounted<GPUTrace> {
 | 
|   public:
 | 
|    GPUTrace(scoped_refptr<Outputter> outputter,
 | 
| -           scoped_refptr<CPUTime> cpu_time,
 | 
| +           gpu::GPUTiming* gpu_timing,
 | 
|             const std::string& category,
 | 
|             const std::string& name,
 | 
| -           int64 offset,
 | 
| -           GpuTracerType tracer_type);
 | 
| -
 | 
| -  bool IsEnabled() { return tracer_type_ != kTracerTypeInvalid; }
 | 
| +           const bool enabled);
 | 
|  
 | 
|    void Start(bool trace_service);
 | 
|    void End(bool tracing_service);
 | 
|    bool IsAvailable();
 | 
| +  bool IsEnabled() { return enabled_; }
 | 
|    void Process();
 | 
|  
 | 
|   private:
 | 
| @@ -196,35 +168,27 @@ class GPU_EXPORT GPUTrace
 | 
|    std::string category_;
 | 
|    std::string name_;
 | 
|    scoped_refptr<Outputter> outputter_;
 | 
| -  scoped_refptr<CPUTime> cpu_time_;
 | 
| -
 | 
| -  int64 offset_;
 | 
| -  int64 start_time_;
 | 
| -  int64 end_time_;
 | 
| -  GpuTracerType tracer_type_;
 | 
| -  bool end_requested_;
 | 
| -
 | 
| -  GLuint queries_[2];
 | 
| +  scoped_ptr<gpu::GPUTimer> gpu_timer_;
 | 
| +  const bool enabled_ = false;
 | 
|  
 | 
|    DISALLOW_COPY_AND_ASSIGN(GPUTrace);
 | 
|  };
 | 
|  
 | 
|  class ScopedGPUTrace {
 | 
| -  public:
 | 
| -    ScopedGPUTrace(GPUTracer* gpu_tracer, GpuTracerSource source,
 | 
| -                   const std::string& category, const std::string& name)
 | 
| -        : gpu_tracer_(gpu_tracer),
 | 
| -          source_(source) {
 | 
| -      gpu_tracer_->Begin(category, name, source_);
 | 
| -    }
 | 
| -
 | 
| -    ~ScopedGPUTrace() {
 | 
| -      gpu_tracer_->End(source_);
 | 
| -    }
 | 
| -
 | 
| -   private:
 | 
| -    GPUTracer* gpu_tracer_;
 | 
| -    GpuTracerSource source_;
 | 
| + public:
 | 
| +  ScopedGPUTrace(GPUTracer* gpu_tracer,
 | 
| +                 GpuTracerSource source,
 | 
| +                 const std::string& category,
 | 
| +                 const std::string& name)
 | 
| +      : gpu_tracer_(gpu_tracer), source_(source) {
 | 
| +    gpu_tracer_->Begin(category, name, source_);
 | 
| +  }
 | 
| +
 | 
| +  ~ScopedGPUTrace() { gpu_tracer_->End(source_); }
 | 
| +
 | 
| + private:
 | 
| +  GPUTracer* gpu_tracer_;
 | 
| +  GpuTracerSource source_;
 | 
|  };
 | 
|  
 | 
|  }  // namespace gles2
 | 
| 
 |