Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(455)

Unified Diff: gpu/command_buffer/service/gpu_tracer.h

Issue 794673007: Added unit tests for the GPU Tracer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removed redundant virtual Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | gpu/command_buffer/service/gpu_tracer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 603322079c18e883a00f0787a4b9bf128f70e7bc..170756f27c627a583be5c9f157f298decab42415 100644
--- a/gpu/command_buffer/service/gpu_tracer.h
+++ b/gpu/command_buffer/service/gpu_tracer.h
@@ -40,6 +40,21 @@ enum GpuTracerType {
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);
@@ -51,10 +66,11 @@ struct TraceMarker {
};
// Traces GPU Commands.
-class GPUTracer : public base::SupportsWeakPtr<GPUTracer> {
+class GPU_EXPORT GPUTracer
+ : public base::SupportsWeakPtr<GPUTracer> {
public:
explicit GPUTracer(gles2::GLES2Decoder* decoder);
- ~GPUTracer();
+ virtual ~GPUTracer();
// Scheduled processing in decoder begins.
bool BeginDecoding();
@@ -69,17 +85,22 @@ class GPUTracer : public base::SupportsWeakPtr<GPUTracer> {
// End the last started trace marker.
bool End(GpuTracerSource source);
- bool IsTracing();
+ virtual bool IsTracing();
// Retrieve the name of the current open trace.
// Returns empty string if no current open trace.
const std::string& CurrentCategory() const;
const std::string& CurrentName() const;
- private:
+ 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();
@@ -87,6 +108,7 @@ class GPUTracer : public base::SupportsWeakPtr<GPUTracer> {
void IssueProcessTask();
scoped_refptr<Outputter> outputter_;
+ scoped_refptr<CPUTime> cpu_time_;
std::vector<TraceMarker> markers_[NUM_TRACER_SOURCES];
std::deque<scoped_refptr<GPUTrace> > traces_;
@@ -107,10 +129,18 @@ class GPUTracer : public base::SupportsWeakPtr<GPUTracer> {
class Outputter : public base::RefCounted<Outputter> {
public:
- virtual void Trace(const std::string& category,
- const std::string& name,
- int64 start_time,
- int64 end_time) = 0;
+ virtual void TraceDevice(const std::string& category,
+ const std::string& name,
+ int64 start_time,
+ int64 end_time) = 0;
+
+ virtual void TraceServiceBegin(const std::string& category,
+ const std::string& name,
+ void* id) = 0;
+
+ virtual void TraceServiceEnd(const std::string& category,
+ const std::string& name,
+ void* id) = 0;
protected:
virtual ~Outputter() {}
@@ -120,10 +150,18 @@ class Outputter : public base::RefCounted<Outputter> {
class TraceOutputter : public Outputter {
public:
static scoped_refptr<TraceOutputter> Create(const std::string& name);
- void Trace(const std::string& category,
- const std::string& name,
- int64 start_time,
- int64 end_time) override;
+ void TraceDevice(const std::string& category,
+ const std::string& name,
+ int64 start_time,
+ int64 end_time) override;
+
+ void TraceServiceBegin(const std::string& category,
+ const std::string& name,
+ void* id) override;
+
+ void TraceServiceEnd(const std::string& category,
+ const std::string& name,
+ void* id) override;
protected:
friend class base::RefCounted<Outputter>;
@@ -140,6 +178,7 @@ class GPU_EXPORT GPUTrace
: public base::RefCounted<GPUTrace> {
public:
GPUTrace(scoped_refptr<Outputter> outputter,
+ scoped_refptr<CPUTime> cpu_time,
const std::string& category,
const std::string& name,
int64 offset,
@@ -165,6 +204,7 @@ class GPU_EXPORT GPUTrace
std::string category_;
std::string name_;
scoped_refptr<Outputter> outputter_;
+ scoped_refptr<CPUTime> cpu_time_;
int64 offset_;
int64 start_time_;
« no previous file with comments | « no previous file | gpu/command_buffer/service/gpu_tracer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698