FIRE-16857: Implement SimulatorFPS[...] sim-feature handler for OpenSim to fix lag meter

meow-7.2.2
Ansariel 2015-11-30 12:06:41 +01:00
parent 41b534a741
commit 50f328ac49
3 changed files with 42 additions and 1 deletions

View File

@ -31,7 +31,11 @@ LFSimFeatureHandler::LFSimFeatureHandler()
mShoutRange(100),
mWhisperRange(10),
mHasAvatarPicker(false),
mHasDestinationGuide(false)
mHasDestinationGuide(false),
mSimulatorFPS(45.f),
mSimulatorFPSFactor(1.f),
mSimulatorFPSWarn(30.f),
mSimulatorFPSCrit(20.f)
{
LL_INFOS() << "Initializing Sim Feature Handler" << LL_ENDL;
@ -84,6 +88,22 @@ void LFSimFeatureHandler::setSupportedFeatures()
mShoutRange = extras.has("shout-range") ? extras["shout-range"].asInteger() : 100;
mWhisperRange = extras.has("whisper-range") ? extras["whisper-range"].asInteger() : 10;
if (extras.has("SimulatorFPS") && extras.has("SimulatorFPSFactor") &&
extras.has("SimulatorFPSWarnPercent") && extras.has("SimulatorFPSCritPercent"))
{
mSimulatorFPS = extras["SimulatorFPS"].asReal();
mSimulatorFPSFactor = extras["SimulatorFPSFactor"].asReal();
mSimulatorFPSWarn = (mSimulatorFPS * mSimulatorFPSFactor) * (extras["SimulatorFPSWarnPercent"].asReal() / 100.f);
mSimulatorFPSCrit = (mSimulatorFPS * mSimulatorFPSFactor) * (extras["SimulatorFPSCritPercent"].asReal() / 100.f);
}
else
{
mSimulatorFPS = 45.f;
mSimulatorFPSFactor = 1.f;
mSimulatorFPSWarn = 30.f;
mSimulatorFPSCrit = 20.f;
}
if (extras.has("search-server-url"))
{
mSearchURL = extras["search-server-url"].asString();
@ -139,6 +159,10 @@ void LFSimFeatureHandler::setSupportedFeatures()
mSayRange = 20;
mShoutRange = 100;
mWhisperRange = 10;
mSimulatorFPS = 45.f;
mSimulatorFPSFactor = 1.f;
mSimulatorFPSWarn = 30.f;
mSimulatorFPSCrit = 20.f;
if (LLLoginInstance::getInstance()->hasResponse("search"))
{

View File

@ -85,6 +85,11 @@ public:
std::string avatarPickerURL() const { return mAvatarPickerURL; }
std::string destinationGuideURL() const { return mDestinationGuideURL; }
F32 simulatorFPS() const { return mSimulatorFPS; }
F32 simulatorFPSFactor() const { return mSimulatorFPSFactor; }
F32 simulatorFPSWarn() const { return mSimulatorFPSWarn; }
F32 simulatorFPSCrit() const { return mSimulatorFPSCrit; }
bool hasAvatarPicker() const { return mHasAvatarPicker; }
bool hasDestinationGuide() const { return mHasDestinationGuide; }
@ -99,6 +104,11 @@ private:
SignaledType<std::string> mAvatarPickerURL;
SignaledType<std::string> mDestinationGuideURL;
F32 mSimulatorFPS;
F32 mSimulatorFPSFactor;
F32 mSimulatorFPSWarn;
F32 mSimulatorFPSCrit;
bool mHasAvatarPicker;
bool mHasDestinationGuide;
};

View File

@ -40,6 +40,8 @@
#include "llfocusmgr.h"
#include "lltextbox.h"
#include "lfsimfeaturehandler.h"
// <FS:Ansariel> Nicer icons
//const std::string LAG_CRITICAL_IMAGE_NAME = "lag_status_critical.tga";
//const std::string LAG_WARNING_IMAGE_NAME = "lag_status_warning.tga";
@ -261,6 +263,11 @@ void LLFloaterLagMeter::determineNetwork()
void LLFloaterLagMeter::determineServer()
{
// <FS:Ansariel> FIRE-16857: Lag-meter special adjustments for OpenSim
mServerFrameTimeWarning = F32Seconds(1.0f / LFSimFeatureHandler::instance().simulatorFPSWarn());
mServerFrameTimeCritical = F32Seconds(1.0f / LFSimFeatureHandler::instance().simulatorFPSCrit());
// </FS:Ansariel>
F32Milliseconds sim_frame_time = LLTrace::get_frame_recording().getLastRecording().getLastValue(LLStatViewer::SIM_FRAME_TIME);
bool find_cause = false;