From cfaf75e196fb22407563e96eb7b61f7561447f7e Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Thu, 19 Apr 2018 23:28:32 -0700 Subject: [PATCH] Using the std::chrono to measure the physics time --- interface/src/Application.cpp | 10 ++++++++-- interface/src/workload/GameWorkload.cpp | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 65f7badd8c..59cb880ccb 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4295,8 +4295,8 @@ void Application::idle() { } { - workload::Timings timings(1, PerformanceTimer::getTimerRecord("/idle/update/simulation").getAverage()); - _gameWorkload.updateSimulationTimings(timings); + // workload::Timings timings(1, PerformanceTimer::getTimerRecord("/idle/update/simulation").getAverage()); + // _gameWorkload.updateSimulationTimings(timings); _gameWorkload.updateViews(_viewFrustum, getMyAvatar()->getHeadPosition()); _gameWorkload._engine->run(); } @@ -5277,7 +5277,9 @@ void Application::update(float deltaTime) { { PROFILE_RANGE(simulation_physics, "Simulation"); PerformanceTimer perfTimer("simulation"); + if (_physicsEnabled) { + auto t0 = std::chrono::high_resolution_clock::now(); { PROFILE_RANGE(simulation_physics, "PrePhysics"); PerformanceTimer perfTimer("prePhysics)"); @@ -5365,6 +5367,10 @@ void Application::update(float deltaTime) { // NOTE: the PhysicsEngine stats are written to stdout NOT to Qt log framework _physicsEngine->dumpStatsIfNecessary(); } + auto t1 = std::chrono::high_resolution_clock::now(); + workload::Timings timings(1); + timings[0] = float(std::chrono::nanoseconds(t1 - t0).count() * 0.000001); + _gameWorkload.updateSimulationTimings(timings); if (!_aboutToQuit) { // NOTE: the getEntities()->update() call below will wait for lock diff --git a/interface/src/workload/GameWorkload.cpp b/interface/src/workload/GameWorkload.cpp index 22f41669dc..332cc9fb5c 100644 --- a/interface/src/workload/GameWorkload.cpp +++ b/interface/src/workload/GameWorkload.cpp @@ -34,13 +34,13 @@ void ControlViews::run(const workload::WorkloadContextPointer& runContext, const outViews.clear(); outViews = inViews; - if (_data.regulateViewRanges) { + if (_data.regulateViewRanges && inTimings.size()) { regulateViews(outViews, inTimings); } } float wtf_adjust(float current, float timing) { - float error = -((timing * 0.001f) - 2.0f); + float error = -((timing) - 2.0f); if (error < 0.0f) { current += 0.2f * (error) / 16.0f; } else {