From 3f2fdd1915642331998700711476508f837ddf8a Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Wed, 4 Jan 2017 13:20:49 -0800 Subject: [PATCH] Expose dropped frames count to stats UI --- interface/resources/qml/Stats.qml | 4 ++++ interface/src/ui/Stats.cpp | 2 ++ interface/src/ui/Stats.h | 3 +++ 3 files changed, 9 insertions(+) diff --git a/interface/resources/qml/Stats.qml b/interface/resources/qml/Stats.qml index 6be114694d..895055618b 100644 --- a/interface/resources/qml/Stats.qml +++ b/interface/resources/qml/Stats.qml @@ -79,6 +79,10 @@ Item { StatText { text: "Avatar Simrate: " + root.avatarSimrate } + StatText { + text: "Missed Frame Count: " + root.appdropped; + visible: root.appdropped > 0; + } StatText { text: "Packets In/Out: " + root.packetInCount + "/" + root.packetOutCount } diff --git a/interface/src/ui/Stats.cpp b/interface/src/ui/Stats.cpp index 07a99d9991..95f31283d0 100644 --- a/interface/src/ui/Stats.cpp +++ b/interface/src/ui/Stats.cpp @@ -125,6 +125,8 @@ void Stats::updateStats(bool force) { STAT_UPDATE(framerate, qApp->getFps()); if (qApp->getActiveDisplayPlugin()) { auto displayPlugin = qApp->getActiveDisplayPlugin(); + auto stats = displayPlugin->getHardwareStats(); + STAT_UPDATE(appdropped, stats["app_dropped_frame_count"].toInt()); STAT_UPDATE(renderrate, displayPlugin->renderRate()); STAT_UPDATE(presentrate, displayPlugin->presentRate()); STAT_UPDATE(presentnewrate, displayPlugin->newFramePresentRate()); diff --git a/interface/src/ui/Stats.h b/interface/src/ui/Stats.h index 79d522b44e..f0bd1f8ab7 100644 --- a/interface/src/ui/Stats.h +++ b/interface/src/ui/Stats.h @@ -39,6 +39,8 @@ class Stats : public QQuickItem { // How often the display device reprojecting old frames STATS_PROPERTY(float, stutterrate, 0) + STATS_PROPERTY(int, appdropped, 0) + STATS_PROPERTY(float, presentnewrate, 0) STATS_PROPERTY(float, presentdroprate, 0) STATS_PROPERTY(int, simrate, 0) @@ -135,6 +137,7 @@ public slots: void forceUpdateStats() { updateStats(true); } signals: + void appdroppedChanged(); void framerateChanged(); void expandedChanged(); void timingExpandedChanged();