]> git.cworth.org Git - apitrace/blobdiff - common/trace_profiler.hpp
Improved profiling capabilities.
[apitrace] / common / trace_profiler.hpp
index ff07c957d6c48d042e7b3d56ddb3ef9368664844..da60d72e532d210ada7a75bbf318a6aa8bebcf6a 100644 (file)
@@ -37,18 +37,33 @@ public:
     Profiler();
     ~Profiler();
 
-    void addCall(unsigned no, const char* name, uint64_t gpu_start, uint64_t gpu_duration, uint64_t samples_passed);
+    void setup(bool cpuTimes_, bool gpuTimes_, bool pixelsDrawn_);
 
-    void addFrameStart(unsigned no, uint64_t timestamp);
-    void addFrameEnd(uint64_t timestamp);
+    void addFrameStart(unsigned no, uint64_t gpuStart, uint64_t cpuStart);
+    void addFrameEnd(uint64_t gpuEnd, uint64_t cpuEnd);
+
+    void addCall(unsigned no,
+                 const char* name,
+                 unsigned program,
+                 uint64_t pixels,
+                 uint64_t gpuStart, uint64_t gpuDuration,
+                 uint64_t cpuStart, uint64_t cpuDuration);
 
 private:
-    uint64_t baseTime;
+    unsigned lastProgram;
+    uint64_t baseGpuTime;
+    uint64_t baseCpuTime;
+
+    bool cpuTimes;
+    bool gpuTimes;
+    bool pixelsDrawn;
 
     struct {
         unsigned no;
-        uint64_t start;
-        uint64_t end;
+        uint64_t gpuStart;
+        uint64_t gpuEnd;
+        uint64_t cpuStart;
+        uint64_t cpuEnd;
     } lastFrame;
 };
 }