mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 09:29:02 +02:00
Merge pull request #5589 from sethalves/simulations-per-second-readout
Simulations per second readout
This commit is contained in:
commit
cebc4e4608
5 changed files with 35 additions and 1 deletions
|
@ -47,6 +47,11 @@ Item {
|
||||||
font.pixelSize: root.fontSize
|
font.pixelSize: root.fontSize
|
||||||
text: "Framerate: " + root.framerate
|
text: "Framerate: " + root.framerate
|
||||||
}
|
}
|
||||||
|
Text {
|
||||||
|
color: root.fontColor;
|
||||||
|
font.pixelSize: root.fontSize
|
||||||
|
text: "Simrate: " + root.simrate
|
||||||
|
}
|
||||||
Text {
|
Text {
|
||||||
color: root.fontColor;
|
color: root.fontColor;
|
||||||
font.pixelSize: root.fontSize
|
font.pixelSize: root.fontSize
|
||||||
|
|
|
@ -2004,10 +2004,19 @@ void Application::checkFPS() {
|
||||||
void Application::idle() {
|
void Application::idle() {
|
||||||
PROFILE_RANGE(__FUNCTION__);
|
PROFILE_RANGE(__FUNCTION__);
|
||||||
static SimpleAverage<float> interIdleDurations;
|
static SimpleAverage<float> interIdleDurations;
|
||||||
|
|
||||||
|
static uint64_t lastIdleStart{ 0 };
|
||||||
static uint64_t lastIdleEnd{ 0 };
|
static uint64_t lastIdleEnd{ 0 };
|
||||||
|
uint64_t now = usecTimestampNow();
|
||||||
|
uint64_t idleStartToStartDuration = now - lastIdleStart;
|
||||||
|
|
||||||
|
if (lastIdleStart > 0 && idleStartToStartDuration > 0) {
|
||||||
|
_simsPerSecond.updateAverage((float)USECS_PER_SECOND / (float)idleStartToStartDuration);
|
||||||
|
}
|
||||||
|
|
||||||
|
lastIdleStart = now;
|
||||||
|
|
||||||
if (lastIdleEnd != 0) {
|
if (lastIdleEnd != 0) {
|
||||||
uint64_t now = usecTimestampNow();
|
|
||||||
interIdleDurations.update(now - lastIdleEnd);
|
interIdleDurations.update(now - lastIdleEnd);
|
||||||
static uint64_t lastReportTime = now;
|
static uint64_t lastReportTime = now;
|
||||||
if ((now - lastReportTime) >= (USECS_PER_SECOND)) {
|
if ((now - lastReportTime) >= (USECS_PER_SECOND)) {
|
||||||
|
@ -2102,6 +2111,16 @@ void Application::idle() {
|
||||||
lastIdleEnd = usecTimestampNow();
|
lastIdleEnd = usecTimestampNow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float Application::getAverageSimsPerSecond() {
|
||||||
|
uint64_t now = usecTimestampNow();
|
||||||
|
|
||||||
|
if (now - _lastSimsPerSecondUpdate > USECS_PER_SECOND) {
|
||||||
|
_simsPerSecondReport = _simsPerSecond.getAverage();
|
||||||
|
_lastSimsPerSecondUpdate = now;
|
||||||
|
}
|
||||||
|
return _simsPerSecondReport;
|
||||||
|
}
|
||||||
|
|
||||||
void Application::setLowVelocityFilter(bool lowVelocityFilter) {
|
void Application::setLowVelocityFilter(bool lowVelocityFilter) {
|
||||||
InputDevice::setLowVelocityFilter(lowVelocityFilter);
|
InputDevice::setLowVelocityFilter(lowVelocityFilter);
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
#include <ViewFrustum.h>
|
#include <ViewFrustum.h>
|
||||||
#include <plugins/PluginContainer.h>
|
#include <plugins/PluginContainer.h>
|
||||||
#include <plugins/PluginManager.h>
|
#include <plugins/PluginManager.h>
|
||||||
|
#include <SimpleMovingAverage.h>
|
||||||
|
|
||||||
#include "AudioClient.h"
|
#include "AudioClient.h"
|
||||||
#include "Bookmarks.h"
|
#include "Bookmarks.h"
|
||||||
|
@ -350,6 +351,8 @@ public:
|
||||||
|
|
||||||
const QRect& getMirrorViewRect() const { return _mirrorViewRect; }
|
const QRect& getMirrorViewRect() const { return _mirrorViewRect; }
|
||||||
|
|
||||||
|
float getAverageSimsPerSecond();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
/// Fired when we're simulating; allows external parties to hook in.
|
/// Fired when we're simulating; allows external parties to hook in.
|
||||||
|
@ -681,6 +684,10 @@ private:
|
||||||
|
|
||||||
EntityItemID _keyboardFocusedItem;
|
EntityItemID _keyboardFocusedItem;
|
||||||
quint64 _lastAcceptedKeyPress = 0;
|
quint64 _lastAcceptedKeyPress = 0;
|
||||||
|
|
||||||
|
SimpleMovingAverage _simsPerSecond{10};
|
||||||
|
int _simsPerSecondReport = 0;
|
||||||
|
quint64 _lastSimsPerSecondUpdate = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // hifi_Application_h
|
#endif // hifi_Application_h
|
||||||
|
|
|
@ -114,6 +114,7 @@ void Stats::updateStats() {
|
||||||
STAT_UPDATE(avatarCount, avatarManager->size() - 1);
|
STAT_UPDATE(avatarCount, avatarManager->size() - 1);
|
||||||
STAT_UPDATE(serverCount, nodeList->size());
|
STAT_UPDATE(serverCount, nodeList->size());
|
||||||
STAT_UPDATE(framerate, (int)qApp->getFps());
|
STAT_UPDATE(framerate, (int)qApp->getFps());
|
||||||
|
STAT_UPDATE(simrate, (int)Application::getInstance()->getAverageSimsPerSecond());
|
||||||
|
|
||||||
auto bandwidthRecorder = DependencyManager::get<BandwidthRecorder>();
|
auto bandwidthRecorder = DependencyManager::get<BandwidthRecorder>();
|
||||||
STAT_UPDATE(packetInCount, bandwidthRecorder->getCachedTotalAverageInputPacketsPerSecond());
|
STAT_UPDATE(packetInCount, bandwidthRecorder->getCachedTotalAverageInputPacketsPerSecond());
|
||||||
|
|
|
@ -30,6 +30,7 @@ class Stats : public QQuickItem {
|
||||||
|
|
||||||
STATS_PROPERTY(int, serverCount, 0)
|
STATS_PROPERTY(int, serverCount, 0)
|
||||||
STATS_PROPERTY(int, framerate, 0)
|
STATS_PROPERTY(int, framerate, 0)
|
||||||
|
STATS_PROPERTY(int, simrate, 0)
|
||||||
STATS_PROPERTY(int, avatarCount, 0)
|
STATS_PROPERTY(int, avatarCount, 0)
|
||||||
STATS_PROPERTY(int, packetInCount, 0)
|
STATS_PROPERTY(int, packetInCount, 0)
|
||||||
STATS_PROPERTY(int, packetOutCount, 0)
|
STATS_PROPERTY(int, packetOutCount, 0)
|
||||||
|
@ -95,6 +96,7 @@ signals:
|
||||||
void timingExpandedChanged();
|
void timingExpandedChanged();
|
||||||
void serverCountChanged();
|
void serverCountChanged();
|
||||||
void framerateChanged();
|
void framerateChanged();
|
||||||
|
void simrateChanged();
|
||||||
void avatarCountChanged();
|
void avatarCountChanged();
|
||||||
void packetInCountChanged();
|
void packetInCountChanged();
|
||||||
void packetOutCountChanged();
|
void packetOutCountChanged();
|
||||||
|
|
Loading…
Reference in a new issue