Corrected dependency calculation algorithm. All good.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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++) {
|
||||
|
||||
Reference in New Issue
Block a user