1 /**************************************************************************
3 * Copyright 2012 VMware, Inc.
4 * Copyright 2013 Intel, Inc.
7 * Permission is hereby granted, free of charge, to any person obtaining a copy
8 * of this software and associated documentation files (the "Software"), to deal
9 * in the Software without restriction, including without limitation the rights
10 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 * copies of the Software, and to permit persons to whom the Software is
12 * furnished to do so, subject to the following conditions:
14 * The above copyright notice and this permission notice shall be included in
15 * all copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25 **************************************************************************/
27 #ifndef TRACE_PROFILER_H
28 #define TRACE_PROFILER_H
50 int64_t vsizeDuration;
69 int64_t vsizeDuration;
73 /* Indices to profile->calls array */
81 Program() : gpuTotal(0), cpuTotal(0), pixelTotal(0) {}
89 /* Indices to profile->calls array */
90 std::vector<unsigned> calls;
93 std::vector<Call> calls;
94 std::vector<Frame> frames;
95 std::vector<Program> programs;
104 void setup(bool cpuTimes_, bool gpuTimes_, bool pixelsDrawn_, bool memoryUsage_);
106 void addCall(unsigned no,
110 int64_t gpuStart, int64_t gpuDuration,
111 int64_t cpuStart, int64_t cpuDuration,
112 int64_t vsizeStart, int64_t vsizeDuration,
113 int64_t rssStart, int64_t rssDuration);
119 void setBaseCpuTime(int64_t cpuStart);
120 void setBaseGpuTime(int64_t gpuStart);
121 void setBaseVsizeUsage(int64_t vsizeStart);
122 void setBaseRssUsage(int64_t rssStart);
124 int64_t getBaseCpuTime();
125 int64_t getBaseGpuTime();
126 int64_t getBaseVsizeUsage();
127 int64_t getBaseRssUsage();
129 static void parseLine(const char* line, Profile* profile);
135 int64_t baseVsizeUsage;
136 int64_t baseRssUsage;
145 #endif // TRACE_PROFILER_H