diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-11-11 19:35:10 +0200 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-11-11 19:35:10 +0200 | 
| commit | 5ff1b1b5d20a0402c571ebc9bba23d88fcfa93eb (patch) | |
| tree | 4e3c19f89631a26d4222e712b864a1e72bcdd544 | |
| parent | 9d5c64dddc928fb5aa0cd03c4b3d68a1ea6173cf (diff) | |
Revert "SL-13565, clean up now-orphaned throttling variable and handling code"
This reverts commit 6c1a15d936763dc14f368e10bd53c6e351bf0136.
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llappviewer.cpp | 20 | ||||
| -rw-r--r-- | indra/newview/llappviewer.h | 7 | 
3 files changed, 36 insertions, 2 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index c6cc93a8c3..c0166f158e 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -812,6 +812,17 @@        <key>Value</key>        <integer>0</integer>      </map> +    <key>FramePerSecondLimit</key> +    <map> +      <key>Comment</key> +      <string>Controls upper limit of frames per second</string> +      <key>Persist</key> +      <integer>1</integer> +      <key>Type</key> +      <string>U32</string> +      <key>Value</key> +      <integer>120</integer> +    </map>      <key>BackgroundYieldTime</key>      <map>        <key>Comment</key> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 384b644dd5..60421899f7 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -689,7 +689,8 @@ LLAppViewer::LLAppViewer()  	mPeriodicSlowFrame(LLCachedControl<bool>(gSavedSettings,"Periodic Slow Frame", FALSE)),  	mFastTimerLogThread(NULL),  	mSettingsLocationList(NULL), -	mIsFirstRun(false) +	mIsFirstRun(false), +	mMinMicroSecPerFrame(0.f)  {  	if(NULL != sInstance)  	{ @@ -1258,6 +1259,10 @@ bool LLAppViewer::init()  	joystick = LLViewerJoystick::getInstance();  	joystick->setNeedsReset(true); +	/*----------------------------------------------------------------------*/ + +	gSavedSettings.getControl("FramePerSecondLimit")->getSignal()->connect(boost::bind(&LLAppViewer::onChangeFrameLimit, this, _2)); +	onChangeFrameLimit(gSavedSettings.getLLSD("FramePerSecondLimit"));  	return true;  } @@ -5432,6 +5437,19 @@ void LLAppViewer::disconnectViewer()  	LLUrlEntryParcel::setDisconnected(gDisconnected);  } +bool LLAppViewer::onChangeFrameLimit(LLSD const & evt) +{ +	if (evt.asInteger() > 0) +	{ +		mMinMicroSecPerFrame = (U64)(1000000.0f / F32(evt.asInteger())); +	} +	else +	{ +		mMinMicroSecPerFrame = 0; +	} +	return false; +} +  void LLAppViewer::forceErrorLLError()  {     	LL_ERRS() << "This is a deliberate llerror" << LL_ENDL; diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h index 4352905f7d..eaebc896d0 100644 --- a/indra/newview/llappviewer.h +++ b/indra/newview/llappviewer.h @@ -257,6 +257,8 @@ private:      void sendLogoutRequest();      void disconnectViewer(); +	bool onChangeFrameLimit(LLSD const & evt); +  	// *FIX: the app viewer class should be some sort of singleton, no?  	// Perhaps its child class is the singleton and this should be an abstract base.  	static LLAppViewer* sInstance;  @@ -313,7 +315,10 @@ private:  	// llcorehttp library init/shutdown helper  	LLAppCoreHttp mAppCoreHttp; -    bool mIsFirstRun; +        bool mIsFirstRun; +	U64 mMinMicroSecPerFrame; // frame throttling + +  };  // consts from viewer.h | 
