| 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_
|
|
|