From 27af35ae3464ad0cd891d301c9b821951334e71d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 10 Aug 2012 17:36:53 +0100 Subject: [PATCH] Rescale/rebase the times just before writing it. --- common/trace_profiler.cpp | 33 ++++++++++++++++++++------------- retrace/glretrace_main.cpp | 4 ++-- 2 files changed, 22 insertions(+), 15 deletions(-) mode change 100644 => 100755 retrace/glretrace_main.cpp diff --git a/common/trace_profiler.cpp b/common/trace_profiler.cpp index 225e042..38ad6dd 100644 --- a/common/trace_profiler.cpp +++ b/common/trace_profiler.cpp @@ -28,6 +28,7 @@ #include #include #include +#include "os_time.hpp" namespace trace { Profiler::Profiler() @@ -77,7 +78,9 @@ void Profiler::addCall(unsigned no, } if (cpuTimes) { - cpuStart -= baseCpuTime; + double cpuTimeScale = 1.0E9 / os::timeFrequency; + cpuStart = (cpuStart - baseCpuTime) * cpuTimeScale; + cpuDuration = cpuDuration * cpuTimeScale; } else { cpuStart = 0; cpuDuration = 0; @@ -108,25 +111,28 @@ void Profiler::addFrameStart(unsigned no, uint64_t gpuStart, uint64_t cpuStart) if (baseCpuTime == 0) { baseCpuTime = cpuStart; } + + lastFrame.no = no; + lastFrame.gpuStart = gpuStart; + lastFrame.cpuStart = cpuStart; if (gpuTimes) { - lastFrame.gpuStart = gpuStart - baseGpuTime; + gpuStart = gpuStart - baseGpuTime; } else { - lastFrame.gpuStart = 0; + gpuStart = 0; } if (cpuTimes) { - lastFrame.cpuStart = cpuStart - baseCpuTime; + double cpuTimeScale = 1.0E9 / os::timeFrequency; + cpuStart = (cpuStart - baseCpuTime) * cpuTimeScale; } else { - lastFrame.cpuStart = 0; + cpuStart = 0; } - lastFrame.no = no; - std::cout << "frame_begin" - << " " << lastFrame.no - << " " << lastFrame.gpuStart - << " " << lastFrame.cpuStart + << " " << no + << " " << gpuStart + << " " << cpuStart << std::endl; } @@ -135,16 +141,17 @@ void Profiler::addFrameEnd(uint64_t gpuEnd, uint64_t cpuEnd) uint64_t gpuDuration, cpuDuration; if (gpuTimes) { - gpuEnd -= baseGpuTime; gpuDuration = gpuEnd - lastFrame.gpuStart; + gpuEnd = gpuEnd - baseGpuTime; } else { gpuEnd = 0; gpuDuration = 0; } if (cpuTimes) { - cpuEnd -= baseCpuTime; - cpuDuration = cpuEnd - lastFrame.cpuStart; + double cpuTimeScale = 1.0E9 / os::timeFrequency; + cpuDuration = (cpuEnd - lastFrame.cpuStart) * cpuTimeScale; + cpuEnd = (cpuEnd - baseCpuTime) * cpuTimeScale; } else { cpuEnd = 0; cpuDuration = 0; diff --git a/retrace/glretrace_main.cpp b/retrace/glretrace_main.cpp old mode 100644 new mode 100755 index cbfc67f..9972f3b --- a/retrace/glretrace_main.cpp +++ b/retrace/glretrace_main.cpp @@ -120,7 +120,7 @@ getGpuTimestamp() { static GLuint64 getCpuTimestamp() { if (retrace::profilingCpuTimes) { - return os::getTime() * (1.0E9 / os::timeFrequency); + return os::getTime(); } else { return 0; } @@ -242,7 +242,7 @@ void endProfile(trace::Call &call) { if (retrace::profilingCpuTimes) { CallQuery& query = callQueries.back(); - query.duration = (os::getTime() - query.start) * (1.0E9 / os::timeFrequency); + query.duration = os::getTime() - query.start; } if (retrace::profilingGpuTimes && supportsElapsed) { -- 2.43.0