]> git.cworth.org Git - apitrace/commitdiff
Rescale/rebase the times just before writing it.
authorJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 10 Aug 2012 16:36:53 +0000 (17:36 +0100)
committerJosé Fonseca <jose.r.fonseca@gmail.com>
Fri, 10 Aug 2012 16:38:12 +0000 (17:38 +0100)
common/trace_profiler.cpp
retrace/glretrace_main.cpp [changed mode: 0644->0755]

index 225e04203389ac42fa3f1eec91c08549680b21d7..38ad6dd93534671ac4c6b7fe78d46f2b5227d317 100644 (file)
@@ -28,6 +28,7 @@
 #include <string.h>
 #include <assert.h>
 #include <sstream>
+#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;
old mode 100644 (file)
new mode 100755 (executable)
index cbfc67f..9972f3b
@@ -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) {