| Index: tools/timer/Timer.cpp
|
| diff --git a/tools/timer/Timer.cpp b/tools/timer/Timer.cpp
|
| index 28841cdc846f9a93efd02dbb696c36c17b245169..b59988ca2642f5f3330d05ba849cdde8c4c49e0d 100644
|
| --- a/tools/timer/Timer.cpp
|
| +++ b/tools/timer/Timer.cpp
|
| @@ -5,6 +5,52 @@
|
| * found in the LICENSE file.
|
| */
|
| #include "Timer.h"
|
| +
|
| +Timer::Timer(SkGLContext* gl)
|
| + : fCpu(-1.0)
|
| + , fWall(-1.0)
|
| + , fTruncatedCpu(-1.0)
|
| + , fTruncatedWall(-1.0)
|
| + , fGpu(-1.0)
|
| +#if SK_SUPPORT_GPU
|
| + , fGpuTimer(gl)
|
| +#endif
|
| + {}
|
| +
|
| +void Timer::start() {
|
| + fSysTimer.startWall();
|
| + fTruncatedSysTimer.startWall();
|
| +#if SK_SUPPORT_GPU
|
| + fGpuTimer.start();
|
| +#endif
|
| + fSysTimer.startCpu();
|
| + fTruncatedSysTimer.startCpu();
|
| +}
|
| +
|
| +void Timer::end() {
|
| + fCpu = fSysTimer.endCpu();
|
| +#if SK_SUPPORT_GPU
|
| + //It is important to stop the cpu clocks first,
|
| + //as the following will cpu wait for the gpu to finish.
|
| + fGpu = fGpuTimer.end();
|
| +#endif
|
| + fWall = fSysTimer.endWall();
|
| +}
|
| +
|
| +void Timer::truncatedEnd() {
|
| + fTruncatedCpu = fTruncatedSysTimer.endCpu();
|
| + fTruncatedWall = fTruncatedSysTimer.endWall();
|
| +}
|
| +
|
| +WallTimer::WallTimer() : fWall(-1.0) {}
|
| +
|
| +void WallTimer::start() {
|
| + fSysTimer.startWall();
|
| +}
|
| +
|
| +void WallTimer::end() {
|
| + fWall = fSysTimer.endWall();
|
| +}
|
|
|
| SkString HumanizeMs(double ms) {
|
| if (ms > 60e+3) return SkStringPrintf("%.3gm", ms/60e+3);
|
|
|