diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2021-09-16 18:39:02 +0100 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2021-09-16 18:39:02 +0100 |
commit | 4ab77cdb60465d655a05cf7f1e9de73867284ac1 (patch) | |
tree | 862f172732ab44803a687e4516b61c1aefb67030 | |
parent | 411c9aa485e1d6e260a261257f64aeac9f244963 (diff) |
SL-15999 - throttle frame rate even more when noninteractive
-rw-r--r-- | indra/newview/llappviewer.cpp | 9 | ||||
-rw-r--r-- | indra/newview/pipeline.cpp | 11 |
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() |