diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.cpp b/qrenderdoc/Windows/PerformanceCounterViewer.cpp
index 63b5d66fa..11258b04d 100644
--- a/qrenderdoc/Windows/PerformanceCounterViewer.cpp
+++ b/qrenderdoc/Windows/PerformanceCounterViewer.cpp
@@ -281,6 +281,24 @@ void PerformanceCounterViewer::OnCaptureLoaded()
ui->saveCSV->setEnabled(true);
}
+void PerformanceCounterViewer::OnEventChanged(uint32_t eventId)
+{
+ if(ui->syncViews->isChecked())
+ {
+ const int numItems = (int)ui->counterResults->rowCount();
+ for(int i = 0; i < numItems; ++i)
+ {
+ QTableWidgetItem *item = ui->counterResults->item(i, 0);
+ if(item->data(Qt::UserRole).toUInt() == eventId)
+ {
+ ui->counterResults->setCurrentItem(item);
+ ui->counterResults->scrollToItem(item);
+ break;
+ }
+ }
+ }
+}
+
void PerformanceCounterViewer::on_counterResults_doubleClicked(const QModelIndex &index)
{
QTableWidgetItem *item = ui->counterResults->item(index.row(), 0);
diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.h b/qrenderdoc/Windows/PerformanceCounterViewer.h
index 809317b47..2b2305d95 100644
--- a/qrenderdoc/Windows/PerformanceCounterViewer.h
+++ b/qrenderdoc/Windows/PerformanceCounterViewer.h
@@ -48,7 +48,7 @@ public:
void OnCaptureLoaded() override;
void OnCaptureClosed() override;
void OnSelectedEventChanged(uint32_t eventId) override {}
- void OnEventChanged(uint32_t eventId) override {}
+ void OnEventChanged(uint32_t eventId) override;
private slots:
// automatic slots
void on_counterResults_doubleClicked(const QModelIndex &index);
diff --git a/qrenderdoc/Windows/PerformanceCounterViewer.ui b/qrenderdoc/Windows/PerformanceCounterViewer.ui
index 8ddfa2a4e..7d5c861cf 100644
--- a/qrenderdoc/Windows/PerformanceCounterViewer.ui
+++ b/qrenderdoc/Windows/PerformanceCounterViewer.ui
@@ -81,6 +81,39 @@
+ -
+
+
+ Sync Views
+
+
+ Sync Views
+
+
+
+ :/arrow_join.png:/arrow_join.png
+
+
+ true
+
+
+ Qt::ToolButtonTextBesideIcon
+
+
+ true
+
+
+ Qt::NoArrow
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
-