summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/app_settings/settings.xml2
-rw-r--r--indra/newview/llperfstats.cpp8
-rw-r--r--indra/newview/llperfstats.h1
-rw-r--r--indra/newview/skins/default/xui/en/panel_performance_autoadjustments.xml4
4 files changed, 10 insertions, 5 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 97bd60277a..9fffab70f4 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -16890,7 +16890,7 @@
<key>TuningFPSStrategy</key>
<map>
<key>Comment</key>
- <string>Strategy to use when tuning FPS. 0=Tune avatar rendering only, 1=Tune both avatar and global scene settings.</string>
+ <string>Strategy to use when tuning FPS. 0=Tune avatar rendering only, 1=Tune both avatar and global scene settings, 2=Tune only global scene.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
diff --git a/indra/newview/llperfstats.cpp b/indra/newview/llperfstats.cpp
index 959e0afbdf..7ff363c3c1 100644
--- a/indra/newview/llperfstats.cpp
+++ b/indra/newview/llperfstats.cpp
@@ -439,7 +439,7 @@ namespace LLPerfStats
// we cannnot do this by avatar adjustment alone.
if((gFrameCount - LLPerfStats::lastGlobalPrefChange) > settingsChangeFrequency) // give changes a short time to take effect.
{
- if(tunables.userFPSTuningStrategy == TUNE_SCENE_AND_AVATARS)
+ if(tunables.userFPSTuningStrategy != TUNE_AVATARS_ONLY)
{
// 1 - hack the water to opaque. all non opaque have a significant hit, this is a big boost for (arguably) a minor visual hit.
// the other reflection options make comparatively little change and if this overshoots we'll be stepping back up later
@@ -477,7 +477,7 @@ namespace LLPerfStats
target_avatar_time_raw = target_frame_time_raw - non_avatar_time_raw;
}
- if( target_avatar_time_raw < tot_avatar_time_raw )
+ if ((target_avatar_time_raw < tot_avatar_time_raw) && (tunables.userFPSTuningStrategy != TUNE_SCENE_ONLY))
{
// we need to spend less time drawing avatars to meet our budget
auto new_render_limit_ns {LLPerfStats::raw_to_ns(av_render_max_raw)};
@@ -520,7 +520,7 @@ namespace LLPerfStats
// turn off if we are not locked.
tunables.updateUserAutoTuneEnabled(false);
}
- if(renderAvatarMaxART_ns != 0 && LLPerfStats::tunedAvatars > 0 )
+ if(renderAvatarMaxART_ns != 0 && LLPerfStats::tunedAvatars > 0 && (tunables.userFPSTuningStrategy != TUNE_SCENE_ONLY) )
{
// if we have more time to spare let's shift up little in the hope we'll restore an avatar.
U64 up_step = LLPerfStats::tunedAvatars > 2 ? LLPerfStats::ART_MIN_ADJUST_UP_NANOS : LLPerfStats::ART_MIN_ADJUST_UP_NANOS * 2;
@@ -528,7 +528,7 @@ namespace LLPerfStats
tunables.updateSettingsFromRenderCostLimit();
return;
}
- if(tunables.userFPSTuningStrategy == TUNE_SCENE_AND_AVATARS)
+ if(tunables.userFPSTuningStrategy != TUNE_AVATARS_ONLY)
{
if( LLPipeline::RenderFarClip < tunables.userTargetDrawDistance )
{
diff --git a/indra/newview/llperfstats.h b/indra/newview/llperfstats.h
index 200ff1f248..48ac483ce7 100644
--- a/indra/newview/llperfstats.h
+++ b/indra/newview/llperfstats.h
@@ -54,6 +54,7 @@ namespace LLPerfStats
static constexpr U32 TUNE_AVATARS_ONLY{0};
static constexpr U32 TUNE_SCENE_AND_AVATARS{1};
+ static constexpr U32 TUNE_SCENE_ONLY{2};
extern F64 cpu_hertz;
diff --git a/indra/newview/skins/default/xui/en/panel_performance_autoadjustments.xml b/indra/newview/skins/default/xui/en/panel_performance_autoadjustments.xml
index c76d39201d..56b032d683 100644
--- a/indra/newview/skins/default/xui/en/panel_performance_autoadjustments.xml
+++ b/indra/newview/skins/default/xui/en/panel_performance_autoadjustments.xml
@@ -136,6 +136,10 @@
label="Avatars and World"
name="av_and_scene"
value="1" />
+ <combo_box.item
+ label="World only"
+ name="scene_only"
+ value="2" />
</combo_box>
<button
follows="top|left"