mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 22:51:20 +02:00
some tweaks to make stats dialog more readable
This commit is contained in:
parent
40cdd8646e
commit
74733452da
4 changed files with 33 additions and 19 deletions
|
@ -531,6 +531,7 @@ Menu::Menu() {
|
||||||
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::PipelineWarnings);
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::PipelineWarnings);
|
||||||
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::LogExtraTimings);
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::LogExtraTimings);
|
||||||
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::SuppressShortTimings);
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::SuppressShortTimings);
|
||||||
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::ShowRealtimeEntityStats);
|
||||||
|
|
||||||
auto audioIO = DependencyManager::get<AudioClient>();
|
auto audioIO = DependencyManager::get<AudioClient>();
|
||||||
MenuWrapper* audioDebugMenu = developerMenu->addMenu("Audio");
|
MenuWrapper* audioDebugMenu = developerMenu->addMenu("Audio");
|
||||||
|
|
|
@ -269,6 +269,7 @@ namespace MenuOption {
|
||||||
const QString ShowDSConnectTable = "Show Domain Connection Timing";
|
const QString ShowDSConnectTable = "Show Domain Connection Timing";
|
||||||
const QString ShowBordersEntityNodes = "Show Entity Nodes";
|
const QString ShowBordersEntityNodes = "Show Entity Nodes";
|
||||||
const QString ShowIKConstraints = "Show IK Constraints";
|
const QString ShowIKConstraints = "Show IK Constraints";
|
||||||
|
const QString ShowRealtimeEntityStats = "Show Realtime Entity Stats";
|
||||||
const QString SimpleShadows = "Simple";
|
const QString SimpleShadows = "Simple";
|
||||||
const QString SixenseEnabled = "Enable Hydra Support";
|
const QString SixenseEnabled = "Enable Hydra Support";
|
||||||
const QString SixenseMouseInput = "Enable Sixense Mouse Input";
|
const QString SixenseMouseInput = "Enable Sixense Mouse Input";
|
||||||
|
|
|
@ -129,6 +129,34 @@ OctreeStatsDialog::~OctreeStatsDialog() {
|
||||||
|
|
||||||
void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
||||||
|
|
||||||
|
// Processed Entities Related stats
|
||||||
|
auto entities = Application::getInstance()->getEntities();
|
||||||
|
auto entitiesTree = entities->getTree();
|
||||||
|
|
||||||
|
// Do this ever paint event... even if we don't update
|
||||||
|
auto totalTrackedEdits = entitiesTree->getTotalTrackedEdits();
|
||||||
|
|
||||||
|
// track our updated per second
|
||||||
|
const quint64 SAMPLING_WINDOW = USECS_PER_SECOND / SAMPLES_PER_SECOND;
|
||||||
|
quint64 now = usecTimestampNow();
|
||||||
|
quint64 sinceLastWindow = now - _lastWindowAt;
|
||||||
|
auto editsInLastWindow = totalTrackedEdits - _lastKnownTrackedEdits;
|
||||||
|
float sinceLastWindowInSeconds = (float)sinceLastWindow / (float)USECS_PER_SECOND;
|
||||||
|
float recentUpdatesPerSecond = (float)editsInLastWindow / sinceLastWindowInSeconds;
|
||||||
|
if (sinceLastWindow > SAMPLING_WINDOW) {
|
||||||
|
_averageUpdatesPerSecond.updateAverage(recentUpdatesPerSecond);
|
||||||
|
_lastWindowAt = now;
|
||||||
|
_lastKnownTrackedEdits = totalTrackedEdits;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only refresh our stats every once in a while, unless asked for realtime
|
||||||
|
quint64 REFRESH_AFTER = Menu::getInstance()->isOptionChecked(MenuOption::ShowRealtimeEntityStats) ? 0 : USECS_PER_SECOND;
|
||||||
|
quint64 sinceLastRefresh = now - _lastRefresh;
|
||||||
|
if (sinceLastRefresh < REFRESH_AFTER) {
|
||||||
|
return QDialog::paintEvent(event);
|
||||||
|
}
|
||||||
|
_lastRefresh = now;
|
||||||
|
|
||||||
// Update labels
|
// Update labels
|
||||||
|
|
||||||
QLabel* label;
|
QLabel* label;
|
||||||
|
@ -213,10 +241,6 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
||||||
"Leaves: " << qPrintable(serversLeavesString) << "";
|
"Leaves: " << qPrintable(serversLeavesString) << "";
|
||||||
label->setText(statsValue.str().c_str());
|
label->setText(statsValue.str().c_str());
|
||||||
|
|
||||||
// Processed Entities Related stats
|
|
||||||
auto entities = Application::getInstance()->getEntities();
|
|
||||||
auto entitiesTree = entities->getTree();
|
|
||||||
|
|
||||||
// Processed Packets Elements
|
// Processed Packets Elements
|
||||||
auto averageElementsPerPacket = entities->getAverageElementsPerPacket();
|
auto averageElementsPerPacket = entities->getAverageElementsPerPacket();
|
||||||
auto averageEntitiesPerPacket = entities->getAverageEntitiesPerPacket();
|
auto averageEntitiesPerPacket = entities->getAverageEntitiesPerPacket();
|
||||||
|
@ -289,22 +313,8 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
||||||
|
|
||||||
// Entity Edits
|
// Entity Edits
|
||||||
label = _labels[_entityUpdates];
|
label = _labels[_entityUpdates];
|
||||||
auto totalTrackedEdits = entitiesTree->getTotalTrackedEdits();
|
|
||||||
auto bytesPerEdit = entitiesTree->getAverageEditBytes();
|
auto bytesPerEdit = entitiesTree->getAverageEditBytes();
|
||||||
|
|
||||||
// track our updated per second
|
|
||||||
const quint64 SAMPLING_WINDOW = USECS_PER_SECOND / SAMPLES_PER_SECOND;
|
|
||||||
quint64 now = usecTimestampNow();
|
|
||||||
quint64 sinceLastWindow = now - _lastWindowAt;
|
|
||||||
auto editsInLastWindow = totalTrackedEdits - _lastKnownTrackedEdits;
|
|
||||||
float sinceLastWindowInSeconds = (float)sinceLastWindow / (float)USECS_PER_SECOND;
|
|
||||||
float recentUpdatesPerSecond = (float)editsInLastWindow / sinceLastWindowInSeconds;
|
|
||||||
if (sinceLastWindow > SAMPLING_WINDOW) {
|
|
||||||
_averageUpdatesPerSecond.updateAverage(recentUpdatesPerSecond);
|
|
||||||
_lastWindowAt = now;
|
|
||||||
_lastKnownTrackedEdits = totalTrackedEdits;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto updatesPerSecond = _averageUpdatesPerSecond.getAverage();
|
auto updatesPerSecond = _averageUpdatesPerSecond.getAverage();
|
||||||
if (updatesPerSecond < 1) {
|
if (updatesPerSecond < 1) {
|
||||||
updatesPerSecond = 0; // we don't really care about small updates per second so suppress those
|
updatesPerSecond = 0; // we don't really care about small updates per second so suppress those
|
||||||
|
@ -324,7 +334,7 @@ void OctreeStatsDialog::paintEvent(QPaintEvent* event) {
|
||||||
|
|
||||||
showAllOctreeServers();
|
showAllOctreeServers();
|
||||||
|
|
||||||
this->QDialog::paintEvent(event);
|
QDialog::paintEvent(event);
|
||||||
}
|
}
|
||||||
void OctreeStatsDialog::showAllOctreeServers() {
|
void OctreeStatsDialog::showAllOctreeServers() {
|
||||||
int serverCount = 0;
|
int serverCount = 0;
|
||||||
|
|
|
@ -76,6 +76,8 @@ private:
|
||||||
quint64 _lastWindowAt = 0;
|
quint64 _lastWindowAt = 0;
|
||||||
quint64 _lastKnownTrackedEdits = 0;
|
quint64 _lastKnownTrackedEdits = 0;
|
||||||
|
|
||||||
|
quint64 _lastRefresh = 0;
|
||||||
|
|
||||||
int _octreeServerLables[MAX_VOXEL_SERVERS];
|
int _octreeServerLables[MAX_VOXEL_SERVERS];
|
||||||
int _octreeServerLabelsCount;
|
int _octreeServerLabelsCount;
|
||||||
details _extraServerDetails[MAX_VOXEL_SERVERS];
|
details _extraServerDetails[MAX_VOXEL_SERVERS];
|
||||||
|
|
Loading…
Reference in a new issue