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

Unified Diff: bench/BenchTimer.h

Issue 346753003: Revert of Move BenchTimer to tools as Timer (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 6 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 | « bench/BenchSysTimer_windows.cpp ('k') | bench/BenchTimer.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bench/BenchTimer.h
diff --git a/bench/BenchTimer.h b/bench/BenchTimer.h
new file mode 100644
index 0000000000000000000000000000000000000000..2abf10b80f9e1d4cca7234cbbd2782af8a37c980
--- /dev/null
+++ b/bench/BenchTimer.h
@@ -0,0 +1,67 @@
+
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#ifndef SkBenchTimer_DEFINED
+#define SkBenchTimer_DEFINED
+
+#include <SkTypes.h>
+
+
+class BenchSysTimer;
+class BenchGpuTimer;
+
+class SkGLContextHelper;
+
+/**
+ * SysTimers and GpuTimers are implemented orthogonally.
+ * This class combines 2 SysTimers and a GpuTimer into one single,
+ * platform specific Timer with a simple interface. The truncated
+ * timer doesn't include the time required for the GPU to finish
+ * its rendering. It should always be <= the un-truncated system
+ * times and (for GPU configurations) can be used to roughly (very
+ * roughly) gauge the GPU load/backlog.
+ */
+class BenchTimer {
+public:
+ BenchTimer(SkGLContextHelper* gl = NULL);
+ ~BenchTimer();
+ void start(double durationScale = 1);
+ void end();
+ void truncatedEnd();
+ double fCpu;
+ double fWall;
+ double fTruncatedCpu;
+ double fTruncatedWall;
+ double fGpu;
+
+private:
+ BenchSysTimer* fSysTimer;
+ BenchSysTimer* fTruncatedSysTimer;
+#if SK_SUPPORT_GPU
+ BenchGpuTimer* fGpuTimer;
+#endif
+ double fDurationScale; // for this start/end session
+};
+
+// Same as BenchTimer above, supporting only fWall but with much lower overhead.
+// (Typically, ~30ns instead of BenchTimer's ~1us.)
+class WallTimer {
+public:
+ WallTimer();
+ ~WallTimer();
+
+ void start(double durationScale = 1);
+ void end();
+
+ double fWall;
+
+private:
+ BenchSysTimer* fSysTimer;
+ double fDurationScale;
+};
+
+#endif
« no previous file with comments | « bench/BenchSysTimer_windows.cpp ('k') | bench/BenchTimer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698