diff options
Diffstat (limited to 'tools/timer/Timer.h')
-rw-r--r-- | tools/timer/Timer.h | 60 |
1 files changed, 5 insertions, 55 deletions
diff --git a/tools/timer/Timer.h b/tools/timer/Timer.h index 9557596248..446eb254fd 100644 --- a/tools/timer/Timer.h +++ b/tools/timer/Timer.h @@ -7,68 +7,18 @@ #ifndef Timer_DEFINED #define Timer_DEFINED -#include "SkTypes.h" #include "SkString.h" +#include "SkTime.h" +#include "SkTypes.h" -#if defined(SK_BUILD_FOR_WIN32) - #include "SysTimer_windows.h" -#elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) - #include "SysTimer_mach.h" -#elif defined(SK_BUILD_FOR_UNIX) || defined(SK_BUILD_FOR_ANDROID) - #include "SysTimer_posix.h" -#endif - -#if SK_SUPPORT_GPU - #include "GpuTimer.h" -#endif - -class SkGLContext; - -/** - * 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 Timer { -public: - explicit Timer(SkGLContext* gl = nullptr); - - void start(); - void truncatedEnd(); - void end(); - - // All times in milliseconds. - double fCpu; - double fWall; - double fTruncatedCpu; - double fTruncatedWall; - double fGpu; - -private: - SysTimer fSysTimer; - SysTimer fTruncatedSysTimer; -#if SK_SUPPORT_GPU - GpuTimer fGpuTimer; -#endif -}; - -// Same as Timer above, supporting only fWall but with much lower overhead. -// (Typically, ~30ns instead of Timer's ~1us.) class WallTimer { public: - WallTimer(); + WallTimer() : fWall(-1) {} - void start(); - void end(); + void start() { fWall = SkTime::GetNSecs(); } + void end() { fWall = (SkTime::GetNSecs() - fWall) * 1e-6; } double fWall; // Milliseconds. - -private: - SysTimer fSysTimer; }; SkString HumanizeMs(double); |