修复 性能测试竞态bug

This commit is contained in:
2026-07-23 13:54:06 +08:00
parent 6ece8054ac
commit 94bb3d4f89
3 changed files with 173 additions and 139 deletions
+7 -10
View File
@@ -20,18 +20,14 @@ namespace YSG {
Global::instance()->renderScheduler().registerPlot(this);
}
bool Plot::usePerformanceShower() {
return d->mShower;
return d->mShower && d->mShower->enabled();
}
void Plot::set_usePerformanceShower(bool use) {
if(!use) {
PerformanceShower* t = d->mShower;
d->mShower = nullptr;
delete t;
} else {
if(d->mShower) return;
d->mShower = new PerformanceShower(this);
d->mShower->show();
if(!d->mShower) {
d->mShower = new PerformanceShower;
d->mShower->init(this, "legend");
}
d->mShower->setEnabled(use);
}
Plot::~Plot() {
@@ -44,6 +40,8 @@ namespace YSG {
return d->mActiveRenderTasks.load(std::memory_order_acquire) == 0;
});
}
delete d->mShower;
d->mShower = nullptr;
delete d;
}
@@ -195,7 +193,6 @@ namespace YSG {
QRegion updateRegion = pipeline.publishRenderColor();
pipeline.jobState = RenderAble::JobState::Idle;
if(!updateRegion.isEmpty()) requestUpdate(updateRegion);
if(d->mShower) d->mShower->refresh();
if(pipeline.hasNewState()) submitRender();
}
void Plot::renderColor(RenderAble::ColorBuffer* color, QSize size, QColor background, std::uint64_t version) {