diff options
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 13 | ||||
| -rw-r--r-- | indra/newview/featuretable.txt | 20 | ||||
| -rw-r--r-- | indra/newview/featuretable_mac.txt | 20 | ||||
| -rw-r--r-- | indra/newview/llviewercontrol.cpp | 32 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml | 32 |
5 files changed, 82 insertions, 35 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index d7026d2dce..9de8892c5e 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8005,7 +8005,7 @@ <key>RenderMaxTextureResolution</key> <map> <key>Comment</key> - <string>Maximum texture resolution to download for non-boosted textures.</string> + <string>Maximum texture resolution to download for non-boosted textures. Driven by RenderTextureQuality.</string> <key>Persist</key> <integer>1</integer> <key>Type</key> @@ -8013,6 +8013,17 @@ <key>Value</key> <integer>2048</integer> </map> + <key>RenderTextureQuality</key> + <map> + <key>Comment</key> + <string>Texture quality preset: 0=Low, 1=Medium, 2=High, 3=Ultra. Drives RenderMaxTextureResolution and TextureChannelPriority.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>U32</string> + <key>Value</key> + <integer>2</integer> + </map> <key>RenderDownScaleMethod</key> <map> <key>Comment</key> diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index 1090dd8ffb..c408edf963 100644 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -1,4 +1,4 @@ -version 74 +version 75 // The version number above should be incremented IF AND ONLY IF some // change has been made that is sufficiently important to justify // resetting the graphics preferences of all users to the recommended @@ -85,7 +85,7 @@ RenderExposure 1 4 RenderTonemapType 1 1 RenderTonemapMix 1 1 RenderDisableVintageMode 1 1 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 3 RenderReflectionProbeCount 1 256 // @@ -128,7 +128,7 @@ RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 RenderDisableVintageMode 1 0 -RenderMaxTextureResolution 1 512 +RenderTextureQuality 1 0 RenderReflectionProbeCount 1 1 // @@ -171,7 +171,7 @@ RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 RenderDisableVintageMode 1 0 -RenderMaxTextureResolution 1 1024 +RenderTextureQuality 1 0 RenderReflectionProbeCount 1 32 // @@ -213,7 +213,7 @@ RenderCASSharpness 1 0 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 1 RenderReflectionProbeCount 1 64 // @@ -255,7 +255,7 @@ RenderCASSharpness 1 0 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 1 RenderReflectionProbeCount 1 64 // @@ -297,7 +297,7 @@ RenderCASSharpness 1 0.4 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 2 RenderReflectionProbeCount 1 128 // @@ -339,7 +339,7 @@ RenderCASSharpness 1 0.4 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 2 RenderReflectionProbeCount 1 256 // @@ -381,7 +381,7 @@ RenderCASSharpness 1 0.4 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 3 RenderReflectionProbeCount 1 256 // @@ -415,7 +415,7 @@ RenderShadowDetail 0 0 RenderReflectionProbeDetail 0 -1 RenderMirrors 0 0 RenderDisableVintageMode 1 0 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 2 RenderReflectionProbeCount 0 0 list Intel diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index c3e2dd0c41..7bb0e3f7f1 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -1,4 +1,4 @@ -version 73 +version 74 // The version number above should be incremented IF AND ONLY IF some // change has been made that is sufficiently important to justify // resetting the graphics preferences of all users to the recommended @@ -85,7 +85,7 @@ RenderTonemapType 1 1 RenderTonemapMix 1 1 RenderDisableVintageMode 1 1 RenderDownScaleMethod 1 0 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 3 RenderReflectionProbeCount 1 256 // @@ -128,7 +128,7 @@ RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 RenderDisableVintageMode 1 0 -RenderMaxTextureResolution 1 512 +RenderTextureQuality 1 0 RenderReflectionProbeCount 1 1 // @@ -171,7 +171,7 @@ RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 RenderDisableVintageMode 1 0 -RenderMaxTextureResolution 1 1024 +RenderTextureQuality 1 0 RenderReflectionProbeCount 1 32 // @@ -213,7 +213,7 @@ RenderCASSharpness 1 0 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 1 RenderReflectionProbeCount 1 64 // @@ -255,7 +255,7 @@ RenderCASSharpness 1 0 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 1 RenderReflectionProbeCount 1 64 // @@ -297,7 +297,7 @@ RenderCASSharpness 1 0 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 2 RenderReflectionProbeCount 1 128 // @@ -339,7 +339,7 @@ RenderCASSharpness 1 0.4 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 2 RenderReflectionProbeCount 1 256 // @@ -381,7 +381,7 @@ RenderCASSharpness 1 0.4 RenderExposure 1 1 RenderTonemapType 1 1 RenderTonemapMix 1 0.7 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 3 RenderReflectionProbeCount 1 256 // @@ -414,7 +414,7 @@ RenderDeferredSSAO 0 0 RenderShadowDetail 0 0 RenderMirrors 0 0 RenderDisableVintageMode 1 0 -RenderMaxTextureResolution 1 2048 +RenderTextureQuality 1 2 RenderReflectionProbeCount 0 0 list TexUnit8orLess diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 0c93b24751..d4d07f24ea 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -112,6 +112,37 @@ static bool handleRenderAvatarMouselookChanged(const LLSD& newvalue) return true; } +static bool handleRenderTextureQualityChanged(const LLSD& newvalue) +{ + // 0=Low, 1=Medium, 2=High, 3=Ultra. Drives max-resolution and per-channel + // streaming aggressiveness. Channel order is X=normals, Y=diffuse, + // Z=specular/metallic, W=emissive (matches TextureChannelPriority). + U32 quality = (U32)newvalue.asInteger(); + U32 max_res = 2048; + LLVector4 channel_priority(5.f, 7.5f, 20.f, 7.5f); + switch (quality) + { + case 0: // Low + max_res = 1024; + channel_priority.setVec(20.f, 30.f, 80.f, 30.f); + break; + case 1: // Medium + channel_priority.setVec(10.f, 15.f, 40.f, 15.f); + break; + case 2: // High + // defaults above + break; + case 3: // Ultra + default: + if (quality > 3) quality = 3; + channel_priority.setVec(1.f, 1.f, 1.f, 1.f); + break; + } + gSavedSettings.setU32("RenderMaxTextureResolution", max_res); + gSavedSettings.setVector4("TextureChannelPriority", channel_priority); + return true; +} + static bool handleRenderFarClipChanged(const LLSD& newvalue) { if (LLStartUp::getStartupState() >= STATE_STARTED) @@ -815,6 +846,7 @@ void settings_setup_listeners() { LL_PROFILE_ZONE_SCOPED; setting_setup_signal_listener(gSavedSettings, "FirstPersonAvatarVisible", handleRenderAvatarMouselookChanged); + setting_setup_signal_listener(gSavedSettings, "RenderTextureQuality", handleRenderTextureQualityChanged); setting_setup_signal_listener(gSavedSettings, "RenderFarClip", handleRenderFarClipChanged); setting_setup_signal_listener(gSavedSettings, "RenderTerrainScale", handleTerrainScaleChanged); setting_setup_signal_listener(gSavedSettings, "RenderTerrainPBRScale", handlePBRTerrainScaleChanged); diff --git a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml index 2a18134491..2942ce67ef 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml @@ -127,31 +127,35 @@ top_delta="16" left="30" width="160" - name="MaxTextureResolutionLabel" + name="TextureQualityLabel" text_readonly_color="LabelDisabledColor"> - Maximum LOD resolution: + Texture quality: </text> <combo_box - control_name="RenderMaxTextureResolution" + control_name="RenderTextureQuality" height="19" layout="topleft" left_pad="10" top_delta="0" - name="MaxTextureResolution" - tool_tip="Maximum resolution for 'level of detail' textures" + name="TextureQuality" + tool_tip="Controls maximum texture resolution and how aggressively textures stream by channel. Higher quality keeps more detail in memory." width="90"> <combo_box.item - label="512" - name="512" - value="512"/> + label="Low" + name="Low" + value="0"/> + <combo_box.item + label="Medium" + name="Medium" + value="1"/> <combo_box.item - label="1024" - name="1024" - value="1024"/> + label="High" + name="High" + value="2"/> <combo_box.item - label="2048" - name="2048" - value="2048"/> + label="Ultra" + name="Ultra" + value="3"/> </combo_box> <check_box |
