summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/db.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/tests/db.cpp b/tests/db.cpp
index 4356e97..4a7846c 100644
--- a/tests/db.cpp
+++ b/tests/db.cpp
@@ -105,7 +105,8 @@ public:
void start_flipping()
{
- m_t1 = std::chrono::steady_clock::now();
+ m_time_last = m_t1 = std::chrono::steady_clock::now();
+ m_slowest_frame = std::chrono::duration<float>::min();
m_frame_num = 0;
queue_next();
}
@@ -115,13 +116,23 @@ private:
{
++m_frame_num;
+ auto now = std::chrono::steady_clock::now();
+
+ std::chrono::duration<float> diff = now - m_time_last;
+ if (diff > m_slowest_frame)
+ m_slowest_frame = diff;
+
if (m_frame_num % 100 == 0) {
- auto t2 = std::chrono::steady_clock::now();
- std::chrono::duration<float> fsec = t2 - m_t1;
- printf("Output %d: fps %f\n", m_connector->idx(), 100.0 / fsec.count());
- m_t1 = t2;
+ std::chrono::duration<float> fsec = now - m_t1;
+ printf("Output %d: fps %f, slowest %.2f ms\n",
+ m_connector->idx(), 100.0 / fsec.count(),
+ m_slowest_frame.count() * 1000);
+ m_t1 = now;
+ m_slowest_frame = std::chrono::duration<float>::min();
}
+ m_time_last = now;
+
queue_next();
}
@@ -167,6 +178,8 @@ private:
int m_frame_num;
chrono::steady_clock::time_point m_t1;
+ chrono::steady_clock::time_point m_time_last;
+ chrono::duration<float> m_slowest_frame;
Flipper m_flipper;