X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_profiler.hpp;h=c8b38b9a73be2c294ed1a5afbc1a7c3c5f6af556;hb=fc4f55a3193269f86c142219f5593dd8b8e9b3c8;hp=c36fd77f6e0bf491dbd880f148343405faed3197;hpb=c748fbcb434374ec13e14cc837ade7c581789e0c;p=apitrace diff --git a/common/trace_profiler.hpp b/common/trace_profiler.hpp index c36fd77..c8b38b9 100644 --- a/common/trace_profiler.hpp +++ b/common/trace_profiler.hpp @@ -27,10 +27,43 @@ #define TRACE_PROFILER_H #include +#include #include namespace trace { + +struct Profile { + struct Call { + unsigned no; + int64_t gpuStart; + int64_t gpuDuration; + int64_t cpuStart; + int64_t cpuDuration; + int64_t pixels; + unsigned program; + std::string name; + + typedef std::vector::iterator iterator; + typedef std::vector::const_iterator const_iterator; + }; + + struct Frame { + unsigned no; + int64_t gpuStart; + int64_t gpuDuration; + int64_t cpuStart; + int64_t cpuDuration; + + std::vector calls; + + typedef std::vector::iterator iterator; + typedef std::vector::const_iterator const_iterator; + }; + + std::vector frames; +}; + class Profiler { public: @@ -49,6 +82,8 @@ public: uint64_t gpuStart, uint64_t gpuDuration, uint64_t cpuStart, uint64_t cpuDuration); + static void parseLine(const char* line, Profile* profile); + private: uint64_t baseGpuTime; uint64_t baseCpuTime;