]> git.cworth.org Git - apitrace/blobdiff - common/trace_profiler.cpp
Synchronise gpuStart and cpuStart for profiling.
[apitrace] / common / trace_profiler.cpp
index 38ad6dd93534671ac4c6b7fe78d46f2b5227d317..2d12698083a5082d0ed13d94f68e59759a19a708 100644 (file)
@@ -55,6 +55,12 @@ void Profiler::setup(bool cpuTimes_, bool gpuTimes_, bool pixelsDrawn_)
     std::cout << "# call no gpu_start gpu_dura cpu_start cpu_dura pixels program name" << std::endl;
 }
 
+void Profiler::setBaseTimes(uint64_t gpuStart, uint64_t cpuStart)
+{
+    baseCpuTime = cpuStart;
+    baseGpuTime = gpuStart;
+}
+
 void Profiler::addCall(unsigned no,
                        const char *name,
                        unsigned program,
@@ -62,14 +68,6 @@ void Profiler::addCall(unsigned no,
                        uint64_t gpuStart, uint64_t gpuDuration,
                        uint64_t cpuStart, uint64_t cpuDuration)
 {
-    if (baseGpuTime == 0) {
-        baseGpuTime = gpuStart;
-    }
-
-    if (baseCpuTime == 0) {
-        baseCpuTime = cpuStart;
-    }
-
     if (gpuTimes) {
         gpuStart -= baseGpuTime;
     } else {
@@ -104,14 +102,6 @@ void Profiler::addCall(unsigned no,
 
 void Profiler::addFrameStart(unsigned no, uint64_t gpuStart, uint64_t cpuStart)
 {
-    if (baseGpuTime == 0) {
-        baseGpuTime = gpuStart;
-    }
-
-    if (baseCpuTime == 0) {
-        baseCpuTime = cpuStart;
-    }
-        
     lastFrame.no = no;
     lastFrame.gpuStart = gpuStart;
     lastFrame.cpuStart = cpuStart;