mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-04 17:10:47 +00:00
Address review feedback.
This commit is contained in:
committed by
baldurk
parent
4d25394c0b
commit
8478bfbb52
@@ -53,13 +53,13 @@ static QString FormatCounterResult(const CounterResult &result, const CounterDes
|
||||
|
||||
switch(description.unit)
|
||||
{
|
||||
case CounterUnit::Bytes: returnValue += QLatin1String{" bytes"}; break;
|
||||
case CounterUnit::Bytes: returnValue += lit(" bytes"); break;
|
||||
|
||||
case CounterUnit::Cycles: returnValue += QLatin1String{" cycles"}; break;
|
||||
case CounterUnit::Cycles: returnValue += lit(" cycles"); break;
|
||||
|
||||
case CounterUnit::Percentage: returnValue += QLatin1String{" %"}; break;
|
||||
case CounterUnit::Percentage: returnValue += lit(" %"); break;
|
||||
|
||||
case CounterUnit::Seconds: returnValue += QLatin1String{" s"}; break;
|
||||
case CounterUnit::Seconds: returnValue += lit(" s"); break;
|
||||
|
||||
case CounterUnit::Absolute:
|
||||
case CounterUnit::Ratio: break;
|
||||
@@ -75,74 +75,75 @@ PerformanceCounterViewer::PerformanceCounterViewer(ICaptureContext &ctx, QWidget
|
||||
|
||||
m_Ctx.AddLogViewer(this);
|
||||
|
||||
connect(ui->captureCounters, &QToolButton::pressed, [=]() -> void {
|
||||
PerformanceCounterSelection pcs(m_Ctx, this);
|
||||
if(RDDialog::show(&pcs) == QDialog::Accepted)
|
||||
connect(ui->captureCounters, &QToolButton::pressed, this,
|
||||
&PerformanceCounterViewer::CaptureCounters);
|
||||
}
|
||||
|
||||
void PerformanceCounterViewer::CaptureCounters()
|
||||
{
|
||||
PerformanceCounterSelection pcs(m_Ctx, this);
|
||||
if(RDDialog::show(&pcs) != QDialog::Accepted)
|
||||
return;
|
||||
const QList<GPUCounter> selectedCounters = pcs.GetSelectedCounters();
|
||||
|
||||
bool done = false;
|
||||
m_Ctx.Replay().AsyncInvoke([this, selectedCounters, &done](IReplayController *controller) -> void {
|
||||
rdctype::array<GPUCounter> counters;
|
||||
counters.create(selectedCounters.size());
|
||||
|
||||
QMap<GPUCounter, CounterDescription> counterDescriptions;
|
||||
|
||||
for(int i = 0; i < selectedCounters.size(); ++i)
|
||||
{
|
||||
const QList<GPUCounter> selectedCounters = pcs.GetSelectedCounters();
|
||||
|
||||
bool done = false;
|
||||
m_Ctx.Replay().AsyncInvoke([=, &done](IReplayController *controller) -> void {
|
||||
rdctype::array<GPUCounter> counters;
|
||||
counters.create(selectedCounters.size());
|
||||
|
||||
QMap<GPUCounter, CounterDescription> counterDescriptions;
|
||||
|
||||
for(int i = 0; i < selectedCounters.size(); ++i)
|
||||
{
|
||||
counters[i] = (GPUCounter)selectedCounters[i];
|
||||
counterDescriptions.insert(counters[i], controller->DescribeCounter(counters[i]));
|
||||
}
|
||||
|
||||
QMap<GPUCounter, int> counterIndex;
|
||||
for(int i = 0; i < selectedCounters.size(); ++i)
|
||||
{
|
||||
counterIndex.insert((GPUCounter)selectedCounters[i], i);
|
||||
}
|
||||
|
||||
const auto results = controller->FetchCounters(counters);
|
||||
|
||||
GUIInvoke::call([this, results, counterDescriptions, counterIndex]() -> void {
|
||||
ui->counterResults->clear();
|
||||
|
||||
QStringList headers;
|
||||
headers << QLatin1String{"EID"};
|
||||
for(const auto &cd : counterDescriptions)
|
||||
{
|
||||
headers << cd.name;
|
||||
}
|
||||
|
||||
QMap<uint32_t, int> eventIdToRow;
|
||||
for(const auto &result : results)
|
||||
{
|
||||
if(eventIdToRow.contains(result.eventID))
|
||||
continue;
|
||||
eventIdToRow[result.eventID] = eventIdToRow.size();
|
||||
}
|
||||
|
||||
ui->counterResults->setColumnCount(headers.size());
|
||||
ui->counterResults->setHorizontalHeaderLabels(headers);
|
||||
ui->counterResults->setRowCount(eventIdToRow.size());
|
||||
ui->counterResults->verticalHeader()->hide();
|
||||
|
||||
for(int i = 0; i < (int)results.size(); ++i)
|
||||
{
|
||||
int row = eventIdToRow[results[i].eventID];
|
||||
ui->counterResults->setItem(row, 0,
|
||||
new QTableWidgetItem(QString::number(results[i].eventID)));
|
||||
ui->counterResults->setItem(row, counterIndex[results[i].counterID] + 1,
|
||||
new QTableWidgetItem(FormatCounterResult(
|
||||
results[i], counterDescriptions[results[i].counterID])));
|
||||
}
|
||||
});
|
||||
|
||||
done = true;
|
||||
});
|
||||
|
||||
ShowProgressDialog(this, QLatin1String("Capturing counters"),
|
||||
[&done]() -> bool { return done; });
|
||||
counters[i] = (GPUCounter)selectedCounters[i];
|
||||
counterDescriptions.insert(counters[i], controller->DescribeCounter(counters[i]));
|
||||
}
|
||||
|
||||
QMap<GPUCounter, int> counterIndex;
|
||||
for(int i = 0; i < selectedCounters.size(); ++i)
|
||||
{
|
||||
counterIndex.insert((GPUCounter)selectedCounters[i], i);
|
||||
}
|
||||
|
||||
const rdctype::array<CounterResult> results = controller->FetchCounters(counters);
|
||||
|
||||
GUIInvoke::call([this, results, counterDescriptions, counterIndex]() -> void {
|
||||
ui->counterResults->clear();
|
||||
|
||||
QStringList headers;
|
||||
headers << lit("EID");
|
||||
for(const CounterDescription &cd : counterDescriptions)
|
||||
{
|
||||
headers << cd.name;
|
||||
}
|
||||
|
||||
QMap<uint32_t, int> eventIdToRow;
|
||||
for(const CounterResult &result : results)
|
||||
{
|
||||
if(eventIdToRow.contains(result.eventID))
|
||||
continue;
|
||||
eventIdToRow[result.eventID] = eventIdToRow.size();
|
||||
}
|
||||
|
||||
ui->counterResults->setColumnCount(headers.size());
|
||||
ui->counterResults->setHorizontalHeaderLabels(headers);
|
||||
ui->counterResults->setRowCount(eventIdToRow.size());
|
||||
|
||||
for(int i = 0; i < (int)results.size(); ++i)
|
||||
{
|
||||
int row = eventIdToRow[results[i].eventID];
|
||||
ui->counterResults->setItem(row, 0,
|
||||
new QTableWidgetItem(QString::number(results[i].eventID)));
|
||||
ui->counterResults->setItem(row, counterIndex[results[i].counterID] + 1,
|
||||
new QTableWidgetItem(FormatCounterResult(
|
||||
results[i], counterDescriptions[results[i].counterID])));
|
||||
}
|
||||
});
|
||||
|
||||
done = true;
|
||||
});
|
||||
|
||||
ShowProgressDialog(this, tr("Capturing counters"), [&done]() -> bool { return done; });
|
||||
}
|
||||
|
||||
PerformanceCounterViewer::~PerformanceCounterViewer()
|
||||
|
||||
Reference in New Issue
Block a user