/**************************************************************************
*
* Copyright 2012 VMware, Inc.
+ * Copyright 2013 Intel, Inc.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
{
struct Profile {
- struct CpuCall {
+ struct Call {
unsigned no;
- int64_t cpuStart;
- int64_t cpuDuration;
-
- std::string name;
- };
-
- struct DrawCall {
- unsigned no;
+ unsigned program;
int64_t gpuStart;
int64_t gpuDuration;
int64_t cpuStart;
int64_t cpuDuration;
+ int64_t vsizeStart;
+ int64_t vsizeDuration;
+ int64_t rssStart;
+ int64_t rssDuration;
+
int64_t pixels;
std::string name;
int64_t cpuStart;
int64_t cpuDuration;
+
+ int64_t vsizeStart;
+ int64_t vsizeDuration;
+ int64_t rssStart;
+ int64_t rssDuration;
+
+ /* Indices to profile->calls array */
+ struct {
+ unsigned begin;
+ unsigned end;
+ } calls;
};
struct Program {
uint64_t gpuTotal;
uint64_t cpuTotal;
uint64_t pixelTotal;
- std::vector<DrawCall> drawCalls;
+ int64_t vsizeTotal;
+ int64_t rssTotal;
+
+ /* Indices to profile->calls array */
+ std::vector<unsigned> calls;
};
+ std::vector<Call> calls;
std::vector<Frame> frames;
std::vector<Program> programs;
- std::vector<CpuCall> cpuCalls;
};
class Profiler
Profiler();
~Profiler();
- void setup(bool cpuTimes_, bool gpuTimes_, bool pixelsDrawn_);
+ void setup(bool cpuTimes_, bool gpuTimes_, bool pixelsDrawn_, bool memoryUsage_);
void addCall(unsigned no,
const char* name,
unsigned program,
int64_t pixels,
int64_t gpuStart, int64_t gpuDuration,
- int64_t cpuStart, int64_t cpuDuration);
+ int64_t cpuStart, int64_t cpuDuration,
+ int64_t vsizeStart, int64_t vsizeDuration,
+ int64_t rssStart, int64_t rssDuration);
void addFrameEnd();
void setBaseCpuTime(int64_t cpuStart);
void setBaseGpuTime(int64_t gpuStart);
+ void setBaseVsizeUsage(int64_t vsizeStart);
+ void setBaseRssUsage(int64_t rssStart);
int64_t getBaseCpuTime();
int64_t getBaseGpuTime();
+ int64_t getBaseVsizeUsage();
+ int64_t getBaseRssUsage();
static void parseLine(const char* line, Profile* profile);
int64_t baseGpuTime;
int64_t baseCpuTime;
int64_t minCpuTime;
+ int64_t baseVsizeUsage;
+ int64_t baseRssUsage;
bool cpuTimes;
bool gpuTimes;
bool pixelsDrawn;
+ bool memoryUsage;
};
}