+
+struct Profile {
+ struct Call {
+ unsigned no;
+
+ int64_t gpuStart;
+ int64_t gpuDuration;
+
+ int64_t cpuStart;
+ int64_t cpuDuration;
+
+ int64_t pixels;
+
+ std::string name;
+ };
+
+ struct Frame {
+ unsigned no;
+
+ int64_t gpuStart;
+ int64_t gpuDuration;
+
+ int64_t cpuStart;
+ int64_t cpuDuration;
+
+ /* Indices to profile->calls array */
+ struct {
+ unsigned begin;
+ unsigned end;
+ } calls;
+ };
+
+ struct Program {
+ Program() : gpuTotal(0), cpuTotal(0), pixelTotal(0) {}
+
+ uint64_t gpuTotal;
+ uint64_t cpuTotal;
+ uint64_t pixelTotal;
+
+ /* Indices to profile->calls array */
+ std::vector<unsigned> calls;
+ };
+
+ std::vector<Call> calls;
+ std::vector<Frame> frames;
+ std::vector<Program> programs;
+};
+