From 41dc4988884cc83b9f57026802f0f5df6775a89d Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Wed, 8 Feb 2017 18:32:39 -0800 Subject: [PATCH] add inView simulation stats --- interface/src/avatar/Avatar.cpp | 5 +++++ interface/src/avatar/Avatar.h | 1 + scripts/developer/debugging/debugAvatarMixer.js | 7 ++++--- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/interface/src/avatar/Avatar.cpp b/interface/src/avatar/Avatar.cpp index a881bb960b..509f6c794a 100644 --- a/interface/src/avatar/Avatar.cpp +++ b/interface/src/avatar/Avatar.cpp @@ -307,6 +307,9 @@ bool Avatar::shouldDie() const { void Avatar::simulate(float deltaTime, bool inView) { _simulationRate.increment(); + if (inView) { + _simulationInViewRate.increment(); + } PROFILE_RANGE(simulation, "simulate"); PerformanceTimer perfTimer("simulate"); @@ -368,6 +371,8 @@ float Avatar::getSimulationRate(const QString& rateName) { return _simulationRate.rate(); } else if (rateName == "avatar") { return _simulationRate.rate(); + } else if (rateName == "avatarInView") { + return _simulationInViewRate.rate(); } else if (rateName == "skeletonModel") { return _skeletonModelSimulationRate.rate(); } else if (rateName == "jointData") { diff --git a/interface/src/avatar/Avatar.h b/interface/src/avatar/Avatar.h index e0d19fcbc1..a1c081e327 100644 --- a/interface/src/avatar/Avatar.h +++ b/interface/src/avatar/Avatar.h @@ -263,6 +263,7 @@ protected: // Some rate tracking support RateCounter<> _simulationRate; + RateCounter<> _simulationInViewRate; RateCounter<> _skeletonModelSimulationRate; RateCounter<> _jointDataSimulationRate; diff --git a/scripts/developer/debugging/debugAvatarMixer.js b/scripts/developer/debugging/debugAvatarMixer.js index fadab96f89..6b5b0d810e 100644 --- a/scripts/developer/debugging/debugAvatarMixer.js +++ b/scripts/developer/debugging/debugAvatarMixer.js @@ -75,9 +75,10 @@ function updateOverlays() { +" FT: " + AvatarManager.getAvatarDataRate(avatarID,"faceTracker").toFixed(2) + "kbps (" + AvatarManager.getAvatarUpdateRate(avatarID,"faceTracker").toFixed(2) + "hz)" + "\n" +" JD: " + AvatarManager.getAvatarDataRate(avatarID,"jointData").toFixed(2) + "kbps (" + AvatarManager.getAvatarUpdateRate(avatarID,"jointData").toFixed(2) + "hz)" + "\n" +"--- Simulation ---\n" - +"All: " + AvatarManager.getAvatarSimulationRate(avatarID,"avatar").toFixed(2) + "\n" - +" SM: " + AvatarManager.getAvatarSimulationRate(avatarID,"skeletonModel").toFixed(2) + "\n" - +" JD: " + AvatarManager.getAvatarSimulationRate(avatarID,"jointData").toFixed(2) + "\n" + +"All: " + AvatarManager.getAvatarSimulationRate(avatarID,"avatar").toFixed(2) + "hz \n" + +" inView: " + AvatarManager.getAvatarSimulationRate(avatarID,"avatarInView").toFixed(2) + "hz \n" + +" SM: " + AvatarManager.getAvatarSimulationRate(avatarID,"skeletonModel").toFixed(2) + "hz \n" + +" JD: " + AvatarManager.getAvatarSimulationRate(avatarID,"jointData").toFixed(2) + "hz \n" if (avatarID in debugOverlays) { // keep the overlay above the current position of this avatar