Index: gpu/perftests/measurements.h |
diff --git a/gpu/perftests/measurements.h b/gpu/perftests/measurements.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..649ff2e9a49d2b5a729b135c111bc2a63551cb21 |
--- /dev/null |
+++ b/gpu/perftests/measurements.h |
@@ -0,0 +1,56 @@ |
+// Copyright 2015 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 GPU_PERFTESTS_MEASUREMENTS_H_ |
+#define GPU_PERFTESTS_MEASUREMENTS_H_ |
+ |
+#include <string> |
+ |
+#include "base/time/time.h" |
+#include "base/timer/elapsed_timer.h" |
+#include "ui/gl/gl_bindings.h" |
+ |
+namespace gpu { |
+ |
+struct Measurement { |
+ Measurement(); |
+ Measurement(const Measurement& m); |
+ Measurement(const std::string& name, |
+ const base::TimeDelta wall_time, |
+ const base::TimeDelta cpu_time, |
+ const base::TimeDelta gpu_time); |
+ ~Measurement(); |
+ |
+ void PrintResult() const; |
+ Measurement& Increment(const Measurement& m); |
+ Measurement Divide(int a) const; |
+ |
+ std::string name; |
+ base::TimeDelta wall_time; |
+ base::TimeDelta cpu_time; |
+ base::TimeDelta gpu_time; |
+}; |
+ |
+// Class to measure wall, cpu and gpu time deltas. |
+// The deltas are measured from the time of the object |
+// creation up to when Record is called. |
+class MeasurementTimers { |
+ public: |
+ MeasurementTimers(); |
+ void Record(); |
+ Measurement GetAsMeasurement(const std::string& name); |
+ ~MeasurementTimers(); |
+ |
+ private: |
+ base::ElapsedTimer wall_timer_; |
piman
2015/01/30 21:12:04
ElapsedTimer uses TimeTicks::Now which can have lo
Daniele Castagna
2015/02/03 04:12:59
Done.
|
+ base::TimeTicks cpu_time_begin_; |
+ GLuint gl_queries_[2]; |
+ |
+ base::TimeDelta wall_time_; |
+ base::TimeDelta cpu_time_; |
+}; |
+ |
+} // namespace gpu |
+ |
+#endif // GPU_PERFTESTS_MEASUREMENTS_H_ |