|
@@ -44,8 +44,8 @@ namespace BansheeEngine
|
|
|
rows.resize(curIdx);
|
|
rows.resize(curIdx);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void addData(UINT32 depth, const String& name, float pctOfParent, UINT32 numCalls, double avgTime, double totalTime,
|
|
|
|
|
- double maxTime, double avgSelfTime, double totalSelfTime, double estOverhead, double estOverheadSelf)
|
|
|
|
|
|
|
+ void addData(UINT32 depth, const String& name, float pctOfParent, UINT32 numCalls, UINT64 numAllocs,
|
|
|
|
|
+ UINT64 numFrees, double avgTime, double totalTime, double avgSelfTime, double totalSelfTime)
|
|
|
{
|
|
{
|
|
|
if(curIdx >= rows.size())
|
|
if(curIdx >= rows.size())
|
|
|
{
|
|
{
|
|
@@ -56,13 +56,12 @@ namespace BansheeEngine
|
|
|
newRow.name = HString(L"{0}");
|
|
newRow.name = HString(L"{0}");
|
|
|
newRow.pctOfParent = HString(L"{0} %");
|
|
newRow.pctOfParent = HString(L"{0} %");
|
|
|
newRow.numCalls = HString(L"{0}");
|
|
newRow.numCalls = HString(L"{0}");
|
|
|
|
|
+ newRow.numAllocs = HString(L"{0}");
|
|
|
|
|
+ newRow.numFrees = HString(L"{0}");
|
|
|
newRow.avgTime = HString(L"{0}");
|
|
newRow.avgTime = HString(L"{0}");
|
|
|
newRow.totalTime = HString(L"{0}");
|
|
newRow.totalTime = HString(L"{0}");
|
|
|
- newRow.maxTime = HString(L"{0}");
|
|
|
|
|
newRow.avgTimeSelf = HString(L"{0}");
|
|
newRow.avgTimeSelf = HString(L"{0}");
|
|
|
newRow.totalTimeSelf = HString(L"{0}");
|
|
newRow.totalTimeSelf = HString(L"{0}");
|
|
|
- newRow.estOverhead = HString(L"{0}");
|
|
|
|
|
- newRow.estOverheadSelf = HString(L"{0}");
|
|
|
|
|
|
|
|
|
|
newRow.labelLayout = &labelLayout.insertLayoutX(labelLayout.getNumChildren() - 1); // Insert before flexible space
|
|
newRow.labelLayout = &labelLayout.insertLayoutX(labelLayout.getNumChildren() - 1); // Insert before flexible space
|
|
|
newRow.contentLayout = &contentLayout.insertLayoutX(contentLayout.getNumChildren() - 1); // Insert before flexible space
|
|
newRow.contentLayout = &contentLayout.insertLayoutX(contentLayout.getNumChildren() - 1); // Insert before flexible space
|
|
@@ -70,37 +69,34 @@ namespace BansheeEngine
|
|
|
GUILabel* name = GUILabel::create(widget, newRow.name, GUIOptions(GUIOption::fixedWidth(200)));
|
|
GUILabel* name = GUILabel::create(widget, newRow.name, GUIOptions(GUIOption::fixedWidth(200)));
|
|
|
GUILabel* pctOfParent = GUILabel::create(widget, newRow.pctOfParent, GUIOptions(GUIOption::fixedWidth(50)));
|
|
GUILabel* pctOfParent = GUILabel::create(widget, newRow.pctOfParent, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
GUILabel* numCalls = GUILabel::create(widget, newRow.numCalls, GUIOptions(GUIOption::fixedWidth(50)));
|
|
GUILabel* numCalls = GUILabel::create(widget, newRow.numCalls, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ GUILabel* numAllocs = GUILabel::create(widget, newRow.numAllocs, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ GUILabel* numFrees = GUILabel::create(widget, newRow.numFrees, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
GUILabel* avgTime = GUILabel::create(widget, newRow.avgTime, GUIOptions(GUIOption::fixedWidth(60)));
|
|
GUILabel* avgTime = GUILabel::create(widget, newRow.avgTime, GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
GUILabel* totalTime = GUILabel::create(widget, newRow.totalTime, GUIOptions(GUIOption::fixedWidth(60)));
|
|
GUILabel* totalTime = GUILabel::create(widget, newRow.totalTime, GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
- GUILabel* maxTime = GUILabel::create(widget, newRow.maxTime, GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
|
|
GUILabel* avgTimeSelf = GUILabel::create(widget, newRow.avgTimeSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
GUILabel* avgTimeSelf = GUILabel::create(widget, newRow.avgTimeSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
GUILabel* totalTimeSelf = GUILabel::create(widget, newRow.totalTimeSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
GUILabel* totalTimeSelf = GUILabel::create(widget, newRow.totalTimeSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
- GUILabel* estOverhead = GUILabel::create(widget, newRow.estOverhead, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
- GUILabel* estOverheadSelf = GUILabel::create(widget, newRow.estOverheadSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
|
|
|
|
|
newRow.labelLayout->addSpace(0);
|
|
newRow.labelLayout->addSpace(0);
|
|
|
newRow.labelLayout->addElement(name);
|
|
newRow.labelLayout->addElement(name);
|
|
|
|
|
|
|
|
newRow.contentLayout->addElement(pctOfParent);
|
|
newRow.contentLayout->addElement(pctOfParent);
|
|
|
newRow.contentLayout->addElement(numCalls);
|
|
newRow.contentLayout->addElement(numCalls);
|
|
|
|
|
+ newRow.contentLayout->addElement(numAllocs);
|
|
|
|
|
+ newRow.contentLayout->addElement(numFrees);
|
|
|
newRow.contentLayout->addElement(avgTime);
|
|
newRow.contentLayout->addElement(avgTime);
|
|
|
newRow.contentLayout->addElement(totalTime);
|
|
newRow.contentLayout->addElement(totalTime);
|
|
|
- newRow.contentLayout->addElement(maxTime);
|
|
|
|
|
newRow.contentLayout->addElement(avgTimeSelf);
|
|
newRow.contentLayout->addElement(avgTimeSelf);
|
|
|
newRow.contentLayout->addElement(totalTimeSelf);
|
|
newRow.contentLayout->addElement(totalTimeSelf);
|
|
|
- newRow.contentLayout->addElement(estOverhead);
|
|
|
|
|
- newRow.contentLayout->addElement(estOverheadSelf);
|
|
|
|
|
|
|
|
|
|
newRow.elements.push_back(name);
|
|
newRow.elements.push_back(name);
|
|
|
newRow.elements.push_back(pctOfParent);
|
|
newRow.elements.push_back(pctOfParent);
|
|
|
newRow.elements.push_back(numCalls);
|
|
newRow.elements.push_back(numCalls);
|
|
|
|
|
+ newRow.elements.push_back(numAllocs);
|
|
|
|
|
+ newRow.elements.push_back(numFrees);
|
|
|
newRow.elements.push_back(avgTime);
|
|
newRow.elements.push_back(avgTime);
|
|
|
newRow.elements.push_back(totalTime);
|
|
newRow.elements.push_back(totalTime);
|
|
|
- newRow.elements.push_back(maxTime);
|
|
|
|
|
newRow.elements.push_back(avgTimeSelf);
|
|
newRow.elements.push_back(avgTimeSelf);
|
|
|
newRow.elements.push_back(totalTimeSelf);
|
|
newRow.elements.push_back(totalTimeSelf);
|
|
|
- newRow.elements.push_back(estOverhead);
|
|
|
|
|
- newRow.elements.push_back(estOverheadSelf);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
ProfilerOverlay::BasicRow& row = rows[curIdx];
|
|
ProfilerOverlay::BasicRow& row = rows[curIdx];
|
|
@@ -111,13 +107,12 @@ namespace BansheeEngine
|
|
|
row.name.setParameter(0, toWString(name));
|
|
row.name.setParameter(0, toWString(name));
|
|
|
row.pctOfParent.setParameter(0, toWString(pctOfParent * 100.0f, 2, 0, ' ', std::ios::fixed));
|
|
row.pctOfParent.setParameter(0, toWString(pctOfParent * 100.0f, 2, 0, ' ', std::ios::fixed));
|
|
|
row.numCalls.setParameter(0, toWString(numCalls));
|
|
row.numCalls.setParameter(0, toWString(numCalls));
|
|
|
|
|
+ row.numAllocs.setParameter(0, toWString(numAllocs));
|
|
|
|
|
+ row.numFrees.setParameter(0, toWString(numFrees));
|
|
|
row.avgTime.setParameter(0, toWString(avgTime, 2, 0, ' ', std::ios::fixed));
|
|
row.avgTime.setParameter(0, toWString(avgTime, 2, 0, ' ', std::ios::fixed));
|
|
|
row.totalTime.setParameter(0, toWString(totalTime, 2, 0, ' ', std::ios::fixed));
|
|
row.totalTime.setParameter(0, toWString(totalTime, 2, 0, ' ', std::ios::fixed));
|
|
|
- row.maxTime.setParameter(0, toWString(maxTime, 2, 0, ' ', std::ios::fixed));
|
|
|
|
|
row.avgTimeSelf.setParameter(0, toWString(avgSelfTime, 2, 0, ' ', std::ios::fixed));
|
|
row.avgTimeSelf.setParameter(0, toWString(avgSelfTime, 2, 0, ' ', std::ios::fixed));
|
|
|
row.totalTimeSelf.setParameter(0, toWString(totalSelfTime, 2, 0, ' ', std::ios::fixed));
|
|
row.totalTimeSelf.setParameter(0, toWString(totalSelfTime, 2, 0, ' ', std::ios::fixed));
|
|
|
- row.estOverhead.setParameter(0, toWString(estOverhead, 2, 0, ' ', std::ios::fixed));
|
|
|
|
|
- row.estOverheadSelf.setParameter(0, toWString(estOverheadSelf, 2, 0, ' ', std::ios::fixed));
|
|
|
|
|
|
|
|
|
|
curIdx++;
|
|
curIdx++;
|
|
|
}
|
|
}
|
|
@@ -153,8 +148,8 @@ namespace BansheeEngine
|
|
|
rows.resize(curIdx);
|
|
rows.resize(curIdx);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- void addData(UINT32 depth, const String& name, float pctOfParent, UINT32 numCalls, UINT64 avgCycles, UINT64 totalCycles,
|
|
|
|
|
- UINT64 maxCycles, UINT64 avgSelfCycles, UINT64 totalSelfCycles, UINT64 estOverhead, UINT64 estOverheadSelf)
|
|
|
|
|
|
|
+ void addData(UINT32 depth, const String& name, float pctOfParent, UINT32 numCalls, UINT64 numAllocs,
|
|
|
|
|
+ UINT64 numFrees, UINT64 avgCycles, UINT64 totalCycles, UINT64 avgSelfCycles, UINT64 totalSelfCycles)
|
|
|
{
|
|
{
|
|
|
if(curIdx >= rows.size())
|
|
if(curIdx >= rows.size())
|
|
|
{
|
|
{
|
|
@@ -165,13 +160,12 @@ namespace BansheeEngine
|
|
|
newRow.name = HString(L"{0}");
|
|
newRow.name = HString(L"{0}");
|
|
|
newRow.pctOfParent = HString(L"{0}");
|
|
newRow.pctOfParent = HString(L"{0}");
|
|
|
newRow.numCalls = HString(L"{0}");
|
|
newRow.numCalls = HString(L"{0}");
|
|
|
|
|
+ newRow.numAllocs = HString(L"{0}");
|
|
|
|
|
+ newRow.numFrees = HString(L"{0}");
|
|
|
newRow.avgCycles = HString(L"{0}");
|
|
newRow.avgCycles = HString(L"{0}");
|
|
|
newRow.totalCycles = HString(L"{0}");
|
|
newRow.totalCycles = HString(L"{0}");
|
|
|
- newRow.maxCycles = HString(L"{0}");
|
|
|
|
|
newRow.avgCyclesSelf = HString(L"{0}");
|
|
newRow.avgCyclesSelf = HString(L"{0}");
|
|
|
newRow.totalCyclesSelf = HString(L"{0}");
|
|
newRow.totalCyclesSelf = HString(L"{0}");
|
|
|
- newRow.estOverhead = HString(L"{0}");
|
|
|
|
|
- newRow.estOverheadSelf = HString(L"{0}");
|
|
|
|
|
|
|
|
|
|
newRow.labelLayout = &labelLayout.insertLayoutX(labelLayout.getNumChildren() - 1); // Insert before flexible space
|
|
newRow.labelLayout = &labelLayout.insertLayoutX(labelLayout.getNumChildren() - 1); // Insert before flexible space
|
|
|
newRow.contentLayout = &contentLayout.insertLayoutX(contentLayout.getNumChildren() - 1); // Insert before flexible space
|
|
newRow.contentLayout = &contentLayout.insertLayoutX(contentLayout.getNumChildren() - 1); // Insert before flexible space
|
|
@@ -179,37 +173,34 @@ namespace BansheeEngine
|
|
|
GUILabel* name = GUILabel::create(widget, newRow.name, GUIOptions(GUIOption::fixedWidth(200)));
|
|
GUILabel* name = GUILabel::create(widget, newRow.name, GUIOptions(GUIOption::fixedWidth(200)));
|
|
|
GUILabel* pctOfParent = GUILabel::create(widget, newRow.pctOfParent, GUIOptions(GUIOption::fixedWidth(50)));
|
|
GUILabel* pctOfParent = GUILabel::create(widget, newRow.pctOfParent, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
GUILabel* numCalls = GUILabel::create(widget, newRow.numCalls, GUIOptions(GUIOption::fixedWidth(50)));
|
|
GUILabel* numCalls = GUILabel::create(widget, newRow.numCalls, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ GUILabel* numAllocs = GUILabel::create(widget, newRow.numAllocs, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ GUILabel* numFrees = GUILabel::create(widget, newRow.numFrees, GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
GUILabel* avgCycles = GUILabel::create(widget, newRow.avgCycles,GUIOptions(GUIOption::fixedWidth(60)));
|
|
GUILabel* avgCycles = GUILabel::create(widget, newRow.avgCycles,GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
GUILabel* totalCycles = GUILabel::create(widget, newRow.totalCycles, GUIOptions(GUIOption::fixedWidth(60)));
|
|
GUILabel* totalCycles = GUILabel::create(widget, newRow.totalCycles, GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
- GUILabel* maxCycles = GUILabel::create(widget, newRow.maxCycles, GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
|
|
GUILabel* avgCyclesSelf = GUILabel::create(widget, newRow.avgCyclesSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
GUILabel* avgCyclesSelf = GUILabel::create(widget, newRow.avgCyclesSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
GUILabel* totalCyclesSelf = GUILabel::create(widget, newRow.totalCyclesSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
GUILabel* totalCyclesSelf = GUILabel::create(widget, newRow.totalCyclesSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
- GUILabel* estOverhead = GUILabel::create(widget, newRow.estOverhead, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
- GUILabel* estOverheadSelf = GUILabel::create(widget, newRow.estOverheadSelf, GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
|
|
|
|
|
newRow.labelLayout->addSpace(0);
|
|
newRow.labelLayout->addSpace(0);
|
|
|
newRow.labelLayout->addElement(name);
|
|
newRow.labelLayout->addElement(name);
|
|
|
|
|
|
|
|
newRow.contentLayout->addElement(pctOfParent);
|
|
newRow.contentLayout->addElement(pctOfParent);
|
|
|
newRow.contentLayout->addElement(numCalls);
|
|
newRow.contentLayout->addElement(numCalls);
|
|
|
|
|
+ newRow.contentLayout->addElement(numAllocs);
|
|
|
|
|
+ newRow.contentLayout->addElement(numFrees);
|
|
|
newRow.contentLayout->addElement(avgCycles);
|
|
newRow.contentLayout->addElement(avgCycles);
|
|
|
newRow.contentLayout->addElement(totalCycles);
|
|
newRow.contentLayout->addElement(totalCycles);
|
|
|
- newRow.contentLayout->addElement(maxCycles);
|
|
|
|
|
newRow.contentLayout->addElement(avgCyclesSelf);
|
|
newRow.contentLayout->addElement(avgCyclesSelf);
|
|
|
newRow.contentLayout->addElement(totalCyclesSelf);
|
|
newRow.contentLayout->addElement(totalCyclesSelf);
|
|
|
- newRow.contentLayout->addElement(estOverhead);
|
|
|
|
|
- newRow.contentLayout->addElement(estOverheadSelf);
|
|
|
|
|
|
|
|
|
|
newRow.elements.push_back(name);
|
|
newRow.elements.push_back(name);
|
|
|
newRow.elements.push_back(pctOfParent);
|
|
newRow.elements.push_back(pctOfParent);
|
|
|
newRow.elements.push_back(numCalls);
|
|
newRow.elements.push_back(numCalls);
|
|
|
|
|
+ newRow.elements.push_back(numAllocs);
|
|
|
|
|
+ newRow.elements.push_back(numFrees);
|
|
|
newRow.elements.push_back(avgCycles);
|
|
newRow.elements.push_back(avgCycles);
|
|
|
newRow.elements.push_back(totalCycles);
|
|
newRow.elements.push_back(totalCycles);
|
|
|
- newRow.elements.push_back(maxCycles);
|
|
|
|
|
newRow.elements.push_back(avgCyclesSelf);
|
|
newRow.elements.push_back(avgCyclesSelf);
|
|
|
newRow.elements.push_back(totalCyclesSelf);
|
|
newRow.elements.push_back(totalCyclesSelf);
|
|
|
- newRow.elements.push_back(estOverhead);
|
|
|
|
|
- newRow.elements.push_back(estOverheadSelf);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
ProfilerOverlay::PreciseRow& row = rows[curIdx];
|
|
ProfilerOverlay::PreciseRow& row = rows[curIdx];
|
|
@@ -220,28 +211,27 @@ namespace BansheeEngine
|
|
|
row.name.setParameter(0, toWString(name));
|
|
row.name.setParameter(0, toWString(name));
|
|
|
row.pctOfParent.setParameter(0, toWString(pctOfParent * 100.0f, 2, 0, ' ', std::ios::fixed));
|
|
row.pctOfParent.setParameter(0, toWString(pctOfParent * 100.0f, 2, 0, ' ', std::ios::fixed));
|
|
|
row.numCalls.setParameter(0, toWString(numCalls));
|
|
row.numCalls.setParameter(0, toWString(numCalls));
|
|
|
|
|
+ row.numAllocs.setParameter(0, toWString(numAllocs));
|
|
|
|
|
+ row.numFrees.setParameter(0, toWString(numFrees));
|
|
|
row.avgCycles.setParameter(0, toWString(avgCycles));
|
|
row.avgCycles.setParameter(0, toWString(avgCycles));
|
|
|
row.totalCycles.setParameter(0, toWString(totalCycles));
|
|
row.totalCycles.setParameter(0, toWString(totalCycles));
|
|
|
- row.maxCycles.setParameter(0, toWString(maxCycles));
|
|
|
|
|
row.avgCyclesSelf.setParameter(0, toWString(avgSelfCycles));
|
|
row.avgCyclesSelf.setParameter(0, toWString(avgSelfCycles));
|
|
|
row.totalCyclesSelf.setParameter(0, toWString(totalSelfCycles));
|
|
row.totalCyclesSelf.setParameter(0, toWString(totalSelfCycles));
|
|
|
- row.estOverhead.setParameter(0, toWString(estOverhead));
|
|
|
|
|
- row.estOverheadSelf.setParameter(0, toWString(estOverheadSelf));
|
|
|
|
|
|
|
|
|
|
curIdx++;
|
|
curIdx++;
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
- const UINT32 ProfilerOverlay::MAX_DEPTH = 2;
|
|
|
|
|
|
|
+ const UINT32 ProfilerOverlay::MAX_DEPTH = 4;
|
|
|
|
|
|
|
|
ProfilerOverlay::ProfilerOverlay(const CM::ViewportPtr& target)
|
|
ProfilerOverlay::ProfilerOverlay(const CM::ViewportPtr& target)
|
|
|
:mIsShown(false), mBasicAreaLabels(nullptr), mPreciseAreaLabels(nullptr), mBasicAreaContents(nullptr), mPreciseAreaContents(nullptr),
|
|
:mIsShown(false), mBasicAreaLabels(nullptr), mPreciseAreaLabels(nullptr), mBasicAreaContents(nullptr), mPreciseAreaContents(nullptr),
|
|
|
mBasicLayoutLabels(nullptr), mPreciseLayoutLabels(nullptr), mBasicLayoutContents(nullptr), mPreciseLayoutContents(nullptr),
|
|
mBasicLayoutLabels(nullptr), mPreciseLayoutLabels(nullptr), mBasicLayoutContents(nullptr), mPreciseLayoutContents(nullptr),
|
|
|
- mTitleBasicName(nullptr), mTitleBasicPctOfParent(nullptr), mTitleBasicNumCalls(nullptr), mTitleBasicAvgTime(nullptr),
|
|
|
|
|
- mTitleBasicTotalTime(nullptr), mTitleBasicMaxTime(nullptr), mTitleBasicAvgTitleSelf(nullptr), mTitleBasicTotalTimeSelf(nullptr),
|
|
|
|
|
- mTitleBasicEstOverhead(nullptr), mTitleBasicEstOverheadSelf(nullptr), mTitlePreciseName(nullptr), mTitlePrecisePctOfParent(nullptr),
|
|
|
|
|
- mTitlePreciseNumCalls(nullptr), mTitlePreciseAvgCycles(nullptr), mTitlePreciseTotalCycles(nullptr), mTitlePreciseMaxCycles(nullptr),
|
|
|
|
|
- mTitlePreciseAvgCyclesSelf(nullptr), mTitlePreciseTotalCyclesSelf(nullptr), mTitlePreciseEstOverhead(nullptr), mTitlePreciseEstOverheadSelf(nullptr)
|
|
|
|
|
|
|
+ mTitleBasicName(nullptr), mTitleBasicPctOfParent(nullptr), mTitleBasicNumCalls(nullptr), mTitleBasicNumAllocs(nullptr), mTitleBasicNumFrees(nullptr),
|
|
|
|
|
+ mTitleBasicAvgTime(nullptr), mTitleBasicTotalTime(nullptr), mTitleBasicAvgTitleSelf(nullptr), mTitleBasicTotalTimeSelf(nullptr),
|
|
|
|
|
+ mTitlePreciseName(nullptr), mTitlePrecisePctOfParent(nullptr), mTitlePreciseNumCalls(nullptr), mTitlePreciseNumAllocs(nullptr),
|
|
|
|
|
+ mTitlePreciseNumFrees(nullptr), mTitlePreciseAvgCycles(nullptr), mTitlePreciseTotalCycles(nullptr), mTitlePreciseAvgCyclesSelf(nullptr),
|
|
|
|
|
+ mTitlePreciseTotalCyclesSelf(nullptr)
|
|
|
{
|
|
{
|
|
|
setTarget(target);
|
|
setTarget(target);
|
|
|
}
|
|
}
|
|
@@ -289,24 +279,22 @@ namespace BansheeEngine
|
|
|
mTitleBasicName = GUILabel::create(*mWidget, HString(L"Name"), GUIOptions(GUIOption::fixedWidth(200)));
|
|
mTitleBasicName = GUILabel::create(*mWidget, HString(L"Name"), GUIOptions(GUIOption::fixedWidth(200)));
|
|
|
mTitleBasicPctOfParent = GUILabel::create(*mWidget, HString(L"% parent"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
mTitleBasicPctOfParent = GUILabel::create(*mWidget, HString(L"% parent"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
mTitleBasicNumCalls = GUILabel::create(*mWidget, HString(L"# calls"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
mTitleBasicNumCalls = GUILabel::create(*mWidget, HString(L"# calls"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ mTitleBasicNumAllocs = GUILabel::create(*mWidget, HString(L"# allocs"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ mTitleBasicNumFrees = GUILabel::create(*mWidget, HString(L"# frees"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
mTitleBasicAvgTime = GUILabel::create(*mWidget, HString(L"Avg. time"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
mTitleBasicAvgTime = GUILabel::create(*mWidget, HString(L"Avg. time"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
mTitleBasicTotalTime = GUILabel::create(*mWidget, HString(L"Total time"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
mTitleBasicTotalTime = GUILabel::create(*mWidget, HString(L"Total time"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
- mTitleBasicMaxTime = GUILabel::create(*mWidget, HString(L"Max time"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
|
|
mTitleBasicAvgTitleSelf = GUILabel::create(*mWidget, HString(L"Avg. self time"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
mTitleBasicAvgTitleSelf = GUILabel::create(*mWidget, HString(L"Avg. self time"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
mTitleBasicTotalTimeSelf = GUILabel::create(*mWidget, HString(L"Total self time"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
mTitleBasicTotalTimeSelf = GUILabel::create(*mWidget, HString(L"Total self time"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
- mTitleBasicEstOverhead = GUILabel::create(*mWidget, HString(L"Est. overhead"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
- mTitleBasicEstOverheadSelf = GUILabel::create(*mWidget, HString(L"Est. self overhead"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
|
|
|
|
|
mTitlePreciseName = GUILabel::create(*mWidget, HString(L"Name"), GUIOptions(GUIOption::fixedWidth(200)));
|
|
mTitlePreciseName = GUILabel::create(*mWidget, HString(L"Name"), GUIOptions(GUIOption::fixedWidth(200)));
|
|
|
mTitlePrecisePctOfParent = GUILabel::create(*mWidget, HString(L"% parent"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
mTitlePrecisePctOfParent = GUILabel::create(*mWidget, HString(L"% parent"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
mTitlePreciseNumCalls = GUILabel::create(*mWidget, HString(L"# calls"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
mTitlePreciseNumCalls = GUILabel::create(*mWidget, HString(L"# calls"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ mTitlePreciseNumAllocs = GUILabel::create(*mWidget, HString(L"# allocs"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
|
|
+ mTitlePreciseNumFrees = GUILabel::create(*mWidget, HString(L"# frees"), GUIOptions(GUIOption::fixedWidth(50)));
|
|
|
mTitlePreciseAvgCycles = GUILabel::create(*mWidget, HString(L"Avg. cycles"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
mTitlePreciseAvgCycles = GUILabel::create(*mWidget, HString(L"Avg. cycles"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
mTitlePreciseTotalCycles = GUILabel::create(*mWidget, HString(L"Total cycles"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
mTitlePreciseTotalCycles = GUILabel::create(*mWidget, HString(L"Total cycles"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
- mTitlePreciseMaxCycles = GUILabel::create(*mWidget, HString(L"Max cycles"), GUIOptions(GUIOption::fixedWidth(60)));
|
|
|
|
|
mTitlePreciseAvgCyclesSelf = GUILabel::create(*mWidget, HString(L"Avg. self cycles"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
mTitlePreciseAvgCyclesSelf = GUILabel::create(*mWidget, HString(L"Avg. self cycles"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
mTitlePreciseTotalCyclesSelf = GUILabel::create(*mWidget, HString(L"Total self cycles"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
mTitlePreciseTotalCyclesSelf = GUILabel::create(*mWidget, HString(L"Total self cycles"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
- mTitlePreciseEstOverhead = GUILabel::create(*mWidget, HString(L"Est. overhead"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
- mTitlePreciseEstOverheadSelf = GUILabel::create(*mWidget, HString(L"Est. self overhead"), GUIOptions(GUIOption::fixedWidth(100)));
|
|
|
|
|
|
|
|
|
|
GUILayout& basicTitleLabelLayout = mBasicLayoutLabels->addLayoutX();
|
|
GUILayout& basicTitleLabelLayout = mBasicLayoutLabels->addLayoutX();
|
|
|
GUILayout& preciseTitleLabelLayout = mPreciseLayoutLabels->addLayoutX();
|
|
GUILayout& preciseTitleLabelLayout = mPreciseLayoutLabels->addLayoutX();
|
|
@@ -316,24 +304,22 @@ namespace BansheeEngine
|
|
|
basicTitleLabelLayout.addElement(mTitleBasicName);
|
|
basicTitleLabelLayout.addElement(mTitleBasicName);
|
|
|
basicTitleContentLayout.addElement(mTitleBasicPctOfParent);
|
|
basicTitleContentLayout.addElement(mTitleBasicPctOfParent);
|
|
|
basicTitleContentLayout.addElement(mTitleBasicNumCalls);
|
|
basicTitleContentLayout.addElement(mTitleBasicNumCalls);
|
|
|
|
|
+ basicTitleContentLayout.addElement(mTitleBasicNumAllocs);
|
|
|
|
|
+ basicTitleContentLayout.addElement(mTitleBasicNumFrees);
|
|
|
basicTitleContentLayout.addElement(mTitleBasicAvgTime);
|
|
basicTitleContentLayout.addElement(mTitleBasicAvgTime);
|
|
|
basicTitleContentLayout.addElement(mTitleBasicTotalTime);
|
|
basicTitleContentLayout.addElement(mTitleBasicTotalTime);
|
|
|
- basicTitleContentLayout.addElement(mTitleBasicMaxTime);
|
|
|
|
|
basicTitleContentLayout.addElement(mTitleBasicAvgTitleSelf);
|
|
basicTitleContentLayout.addElement(mTitleBasicAvgTitleSelf);
|
|
|
basicTitleContentLayout.addElement(mTitleBasicTotalTimeSelf);
|
|
basicTitleContentLayout.addElement(mTitleBasicTotalTimeSelf);
|
|
|
- basicTitleContentLayout.addElement(mTitleBasicEstOverhead);
|
|
|
|
|
- basicTitleContentLayout.addElement(mTitleBasicEstOverheadSelf);
|
|
|
|
|
|
|
|
|
|
preciseTitleLabelLayout.addElement(mTitlePreciseName);
|
|
preciseTitleLabelLayout.addElement(mTitlePreciseName);
|
|
|
preciseTitleContentLayout.addElement(mTitlePrecisePctOfParent);
|
|
preciseTitleContentLayout.addElement(mTitlePrecisePctOfParent);
|
|
|
preciseTitleContentLayout.addElement(mTitlePreciseNumCalls);
|
|
preciseTitleContentLayout.addElement(mTitlePreciseNumCalls);
|
|
|
|
|
+ preciseTitleContentLayout.addElement(mTitlePreciseNumAllocs);
|
|
|
|
|
+ preciseTitleContentLayout.addElement(mTitlePreciseNumFrees);
|
|
|
preciseTitleContentLayout.addElement(mTitlePreciseAvgCycles);
|
|
preciseTitleContentLayout.addElement(mTitlePreciseAvgCycles);
|
|
|
preciseTitleContentLayout.addElement(mTitlePreciseTotalCycles);
|
|
preciseTitleContentLayout.addElement(mTitlePreciseTotalCycles);
|
|
|
- preciseTitleContentLayout.addElement(mTitlePreciseMaxCycles);
|
|
|
|
|
preciseTitleContentLayout.addElement(mTitlePreciseAvgCyclesSelf);
|
|
preciseTitleContentLayout.addElement(mTitlePreciseAvgCyclesSelf);
|
|
|
preciseTitleContentLayout.addElement(mTitlePreciseTotalCyclesSelf);
|
|
preciseTitleContentLayout.addElement(mTitlePreciseTotalCyclesSelf);
|
|
|
- preciseTitleContentLayout.addElement(mTitlePreciseEstOverhead);
|
|
|
|
|
- preciseTitleContentLayout.addElement(mTitlePreciseEstOverheadSelf);
|
|
|
|
|
|
|
|
|
|
mBasicLayoutLabels->addFlexibleSpace();
|
|
mBasicLayoutLabels->addFlexibleSpace();
|
|
|
mPreciseLayoutLabels->addFlexibleSpace();
|
|
mPreciseLayoutLabels->addFlexibleSpace();
|
|
@@ -451,8 +437,8 @@ namespace BansheeEngine
|
|
|
todoBasic.pop();
|
|
todoBasic.pop();
|
|
|
|
|
|
|
|
const CPUProfilerBasicSamplingEntry::Data& data = curEntry.entry.data;
|
|
const CPUProfilerBasicSamplingEntry::Data& data = curEntry.entry.data;
|
|
|
- basicRowFiller.addData(curEntry.depth, data.name, data.pctOfParent, data.numCalls, data.avgTimeMs, data.totalTimeMs,
|
|
|
|
|
- data.maxTimeMs, data.avgSelfTimeMs, data.totalSelfTimeMs, data.estimatedOverheadMs, data.estimatedSelfOverheadMs);
|
|
|
|
|
|
|
+ basicRowFiller.addData(curEntry.depth, data.name, data.pctOfParent, data.numCalls, data.memAllocs, data.memFrees,
|
|
|
|
|
+ data.avgTimeMs, data.totalTimeMs, data.avgSelfTimeMs, data.totalSelfTimeMs);
|
|
|
|
|
|
|
|
if(curEntry.depth <= MAX_DEPTH)
|
|
if(curEntry.depth <= MAX_DEPTH)
|
|
|
{
|
|
{
|
|
@@ -481,8 +467,8 @@ namespace BansheeEngine
|
|
|
todoPrecise.pop();
|
|
todoPrecise.pop();
|
|
|
|
|
|
|
|
const CPUProfilerPreciseSamplingEntry::Data& data = curEntry.entry.data;
|
|
const CPUProfilerPreciseSamplingEntry::Data& data = curEntry.entry.data;
|
|
|
- preciseRowFiller.addData(curEntry.depth, data.name, data.pctOfParent, data.numCalls, data.avgCycles, data.totalCycles,
|
|
|
|
|
- data.maxCycles, data.avgSelfCycles, data.totalSelfCycles, data.estimatedOverhead, data.estimatedSelfOverhead);
|
|
|
|
|
|
|
+ preciseRowFiller.addData(curEntry.depth, data.name, data.pctOfParent, data.numCalls, data.memAllocs, data.memFrees,
|
|
|
|
|
+ data.avgCycles, data.totalCycles, data.avgSelfCycles, data.totalSelfCycles);
|
|
|
|
|
|
|
|
if(curEntry.depth <= MAX_DEPTH)
|
|
if(curEntry.depth <= MAX_DEPTH)
|
|
|
{
|
|
{
|