Index: gpu/perftests/measurements.h |
diff --git a/gpu/perftests/measurements.h b/gpu/perftests/measurements.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..15be4228a9cf6435ba7dba6ca7b55702e1af7e37 |
--- /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/memory/scoped_ptr.h" |
+#include "base/time/time.h" |
+#include "gpu/command_buffer/service/gpu_timing.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: |
+ explicit MeasurementTimers(GPUTiming* gpu_timing); |
+ void Record(); |
+ Measurement GetAsMeasurement(const std::string& name); |
+ ~MeasurementTimers(); |
+ |
+ private: |
+ base::TimeTicks wall_time_start_; |
+ base::TimeTicks cpu_time_start_; |
+ scoped_ptr<gpu::GPUTimer> gpu_timer_; |
+ |
+ base::TimeDelta wall_time_; |
+ base::TimeDelta cpu_time_; |
+}; |
+ |
+} // namespace gpu |
+ |
+#endif // GPU_PERFTESTS_MEASUREMENTS_H_ |