From 3fd020297fd1ff94d80d27df5a871e73267f8b9b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 11 Mar 2013 23:35:22 +0000 Subject: [PATCH] glretrace: Fix cpu timings when not measuring gpu times. --- common/trace_profiler.cpp | 4 +--- retrace/glretrace_main.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/common/trace_profiler.cpp b/common/trace_profiler.cpp index 773e7cc..14edd35 100644 --- a/common/trace_profiler.cpp +++ b/common/trace_profiler.cpp @@ -120,9 +120,7 @@ void Profiler::addCall(unsigned no, } if (cpuTimes && cpuStart) { - double cpuTimeScale = 1.0E9 / os::timeFrequency; - cpuStart = (cpuStart - baseCpuTime) * cpuTimeScale; - cpuDuration = cpuDuration * cpuTimeScale; + cpuStart = cpuStart - baseCpuTime; if (cpuDuration < minCpuTime) { return; diff --git a/retrace/glretrace_main.cpp b/retrace/glretrace_main.cpp index 1591287..3645b4f 100755 --- a/retrace/glretrace_main.cpp +++ b/retrace/glretrace_main.cpp @@ -178,7 +178,9 @@ completeCallQuery(CallQuery& query) { } if (retrace::profilingCpuTimes) { - cpuDuration = query.cpuEnd - query.cpuStart; + double cpuTimeScale = 1.0E9 / getTimeFrequency(); + cpuDuration = (query.cpuEnd - query.cpuStart) * cpuTimeScale; + query.cpuStart *= cpuTimeScale; } if (retrace::profilingMemoryUsage) { @@ -318,7 +320,8 @@ initContext() { /* Sync the gpu and cpu start times */ if (retrace::profilingCpuTimes || retrace::profilingGpuTimes) { if (!retrace::profiler.hasBaseTimes()) { - GLint64 currentTime = getCurrentTime(); + double cpuTimeScale = 1.0E9 / getTimeFrequency(); + GLint64 currentTime = getCurrentTime() * cpuTimeScale; retrace::profiler.setBaseCpuTime(currentTime); retrace::profiler.setBaseGpuTime(currentTime); } -- 2.43.0