summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2021-09-16 18:39:02 +0100
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2021-09-16 18:39:02 +0100
commit4ab77cdb60465d655a05cf7f1e9de73867284ac1 (patch)
tree862f172732ab44803a687e4516b61c1aefb67030 /indra/newview
parent411c9aa485e1d6e260a261257f64aeac9f244963 (diff)
SL-15999 - throttle frame rate even more when noninteractive
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llappviewer.cpp9
-rw-r--r--indra/newview/pipeline.cpp11
2 files changed, 20 insertions, 0 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 891722e1bd..6ff9b2b2eb 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -1557,6 +1557,15 @@ bool LLAppViewer::doFrame()
ms_sleep(yield_time);
}
+ static LLCachedControl<bool> s_non_interactive(gSavedSettings, "NonInteractive", false);
+ if (s_non_interactive)
+ {
+ S32 non_interactive_ms_sleep_time = 1000;
+ LLAppViewer::getTextureCache()->pause();
+ LLAppViewer::getImageDecodeThread()->pause();
+ ms_sleep(non_interactive_ms_sleep_time);
+ }
+
// yield cooperatively when not running as foreground window
// and when not quiting (causes trouble at mac's cleanup stage)
if (!LLApp::isExiting()
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index cd1b9c7c69..6d2eafd7c0 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -487,6 +487,10 @@ void LLPipeline::init()
{
clearAllRenderTypes();
}
+ else if (gSavedSettings.getBOOL("NonInteractive"))
+ {
+ clearAllRenderTypes();
+ }
else
{
setAllRenderTypes(); // By default, all rendering types start enabled
@@ -1153,6 +1157,13 @@ void LLPipeline::refreshCachedSettings()
RenderAutoHideSurfaceAreaLimit = gSavedSettings.getF32("RenderAutoHideSurfaceAreaLimit");
RenderSpotLight = nullptr;
updateRenderDeferred();
+
+ bool non_interactive = gSavedSettings.getBOOL("NonInteractive");
+ if (non_interactive)
+ {
+ LLVOAvatar::sMaxNonImpostors = 1;
+ LLVOAvatar::updateImpostorRendering(LLVOAvatar::sMaxNonImpostors);
+ }
}
void LLPipeline::releaseGLBuffers()