Corrected dependency calculation algorithm. All good.

This commit is contained in:
Iron Prando da Silva
2021-12-15 12:31:11 +01:00
parent f092b79592
commit 57cf59ec3b
3 changed files with 36 additions and 3 deletions

View File

@@ -67,11 +67,12 @@ void DRAMTimeDependenciesIF::mFilterDependencyList(std::vector<TimeDependency>&
dependencyFilter.end(),
dep.phaseDep,
[](const QString& cmd, const QString& depName){
return cmd == "NAW" || QStringsComparator::compareQStrings(cmd, depName);
return depName == "NAW" || QStringsComparator::compareQStrings(cmd, depName);
}
);
if (it != dependencyFilter.end() && *it == dep.phaseDep) return true;
if (dep.phaseDep == "NAW" || it != dependencyFilter.end() && *it == dep.phaseDep)
return true;
return false;
}

View File

@@ -17,6 +17,7 @@ PhaseDependenciesTracker::calculateDependencies(TraceDB& tdb, std::vector<QStrin
mInsertIntoTable(tdb, entries);
} else {
// TODO - not sure if necessary. Still here as a possibility
// mRollbackChanges(tdb);
// return;
}
@@ -189,6 +190,7 @@ PhaseDependenciesTracker::mCalculateDependencies(const TraceDB& tdb, const std::
) {
continue;
}
if (dep.phaseDep == "NAW") {
if (otherPhase->phaseName == "ACT") {
if (timeDiff == dep.timeValue) {
@@ -202,8 +204,12 @@ PhaseDependenciesTracker::mCalculateDependencies(const TraceDB& tdb, const std::
otherPhase->id,
otherPhase->phaseName
});
}
if (timeDiff <= dep.timeValue) {
nawCount++;
}
nawCount++;
}

View File

@@ -324,6 +324,32 @@ void TraceFileTab::on_latencyTreeView_doubleClicked(const QModelIndex &index)
}
}
bool TraceFileTab::eventFilter(QObject *object, QEvent *event)
{
if (auto canvas = qobject_cast<QwtPlotCanvas *>(object))
{
if (event->type() == QEvent::MouseButtonDblClick)
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if (mouseEvent->button() != Qt::LeftButton)
return false;
QwtPlot *plot = canvas->plot();
double realTime = plot->invTransform(QwtPlot::xBottom, mouseEvent->x());
// Convert from seconds to picoseconds
traceTime time = realTime * 1000 * 1000 * 1000 * 1000;
navigator->navigateToTime(time);
return true;
}
}
return QWidget::eventFilter(object, event);
}
void TraceFileTab::on_calculateDependencies_clicked() {
std::vector<QString> dependencyFilter;
for (int row = 0; row < ui->depTabPossiblePhases->count(); row++) {