diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 97bd60277a7961167e3a932ddbb157ab17aa9702..9fffab70f43ec26c925a71a61cc0e29e70d71220 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 959e0afbdf9957f30df9d08b477564a934ac0be9..7ff363c3c1127102978919adbfdcecfa973588ce 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 200ff1f248972472c356c654fd452db0884d74a9..48ac483ce7b6921c9513f7cbde1362eeb79f673b 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 c76d39201d578f28aa754bff2293a4e855a37abe..56b032d68376ce0aa149aa935cab28b19a9ca3af 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"