diff options
22 files changed, 312 insertions, 258 deletions
diff --git a/indra/newview/app_settings/high_graphics.xml b/indra/newview/app_settings/high_graphics.xml index 37def19aaa..4e7c0fa914 100755 --- a/indra/newview/app_settings/high_graphics.xml +++ b/indra/newview/app_settings/high_graphics.xml @@ -27,9 +27,8 @@  	<!--Default for now-->  	<RenderTreeLODFactor value="0.5"/>  	<!--Avater Impostors and Visual Muting Limits--> -	<RenderUseImpostors value="TRUE"/> -    <RenderAvatarMaxVisible          value="20"/> -    <RenderAutoMuteRenderWeightLimit value="350000"/> +    <RenderAvatarMaxNonImpostors     value="20"/> +    <RenderAvatarMaxComplexity              value="350000"/>      <RenderAutoMuteSurfaceAreaLimit  value="300"/>  	<!--Default for now-->  	<RenderVolumeLODFactor value="1.125"/> diff --git a/indra/newview/app_settings/low_graphics.xml b/indra/newview/app_settings/low_graphics.xml index 683c2bd996..b98d681018 100755 --- a/indra/newview/app_settings/low_graphics.xml +++ b/indra/newview/app_settings/low_graphics.xml @@ -7,7 +7,7 @@  	<!--Default for now-->  	<RenderAvatarPhysicsLODFactor value="0.0"/>  	<!--Default for now--> -	<RenderAvatarMaxVisible value="3"/> +	<RenderAvatarMaxNonImpostors value="10"/>  	<!--NO SHADERS-->  	<RenderAvatarVP value="FALSE"/>  	<!--Short Range--> @@ -29,9 +29,8 @@  	<!--Default for now-->  	<RenderTreeLODFactor value="0.5"/>  	<!--Avater Impostors and Visual Muting Limits--> -	<RenderUseImpostors value="TRUE"/> -    <RenderAvatarMaxVisible          value="12"/> -    <RenderAutoMuteRenderWeightLimit value="75000"/> +    <RenderAvatarMaxNonImpostors     value="12"/> +    <RenderAvatarMaxComplexity              value="75000"/>      <RenderAutoMuteSurfaceAreaLimit  value="150"/>  	<!--Default for now-->  	<RenderVolumeLODFactor value="1.125"/> diff --git a/indra/newview/app_settings/mid_graphics.xml b/indra/newview/app_settings/mid_graphics.xml index f9b199c728..fad48f9683 100755 --- a/indra/newview/app_settings/mid_graphics.xml +++ b/indra/newview/app_settings/mid_graphics.xml @@ -27,9 +27,8 @@  	<!--Default for now-->  	<RenderTreeLODFactor value="0.5"/>  	<!--Avater Impostors and Visual Muting Limits--> -	<RenderUseImpostors value="TRUE"/> -    <RenderAvatarMaxVisible          value="18"/> -    <RenderAutoMuteRenderWeightLimit value="100000"/> +    <RenderAvatarMaxNonImpostors     value="18"/> +    <RenderAvatarMaxComplexity              value="100000"/>      <RenderAutoMuteSurfaceAreaLimit  value="200"/>  	<!--Default for now-->  	<RenderVolumeLODFactor value="1.125"/> diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 0c5126574f..de81f8f0ee 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8287,15 +8287,13 @@      <key>RenderAvatarMaxVisible</key>      <map>        <key>Comment</key> -      <string>Maximum number of avatars to fully render at one time; -      over this limit uses impostor rendering (simplified rendering -      with less frequent updates)</string> +      <string>OBSOLETE and UNUSED. See RenderAvatarMaxNonImpostors</string>        <key>Persist</key> -      <integer>1</integer> +      <integer>0</integer>        <key>Type</key>        <string>S32</string>        <key>Value</key> -      <integer>12</integer> +      <integer>0</integer>      </map>      <key>RenderAvatarPhysicsLODFactor</key>      <map> @@ -9846,29 +9844,28 @@      <key>Value</key>      <integer>0</integer>    </map> -    <key>RenderUseFarClip</key> -    <map> -      <key>Comment</key> -      <string>If false, frustum culling will ignore far clip plane.</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map> -    <key>RenderUseImpostors</key> -    <map> -      <key>Comment</key> -      <string>Whether we want to use impostors for far away avatars.</string> -      <key>Persist</key> -      <integer>1</integer> -      <key>Type</key> -      <string>Boolean</string> -      <key>Value</key> -      <integer>1</integer> -    </map> -   +  <key>RenderUseFarClip</key> +  <map> +    <key>Comment</key> +    <string>If false, frustum culling will ignore far clip plane.</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>Boolean</string> +    <key>Value</key> +    <integer>1</integer> +  </map> +  <key>RenderUseImpostors</key> +  <map> +    <key>Comment</key> +    <string>OBSOLETE and UNUSED. See RenderAvatarMaxNonImpostors and RenderAvatarMaxComplexity.</string> +    <key>Persist</key> +    <integer>0</integer> +    <key>Type</key> +    <string>Boolean</string> +    <key>Value</key> +    <integer>0</integer> +  </map>    <key>RenderAutoMuteByteLimit</key>    <map>      <key>Comment</key> @@ -9880,10 +9877,35 @@      <key>Value</key>      <integer>10000000</integer>    </map> +  <key>RenderAvatarMaxNonImpostors</key> +  <map> +    <key>Comment</key> +    <string>Maximum number of avatars to fully render at one time; +    over this limit uses impostor rendering (simplified rendering +    with less frequent updates), reducing client lag.</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>U32</string> +    <key>Value</key> +    <integer>12</integer> +  </map>    <key>RenderAutoMuteRenderWeightLimit</key>    <map>      <key>Comment</key> -    <string>Maximum render weight before an avatar is rendered as a simple impostor (0 to not use this limit).</string> +    <string>OBSOLETE. This setting has been renamed RenderAvatarMaxNonImpostors.</string> +    <key>Persist</key> +    <integer>0</integer> +    <key>Type</key> +    <string>U32</string> +    <key>Value</key> +    <integer>0</integer> +  </map> +  <key>RenderAvatarMaxComplexity</key> +  <map> +    <key>Comment</key> +    <string>Maximum Avatar Complexity; above this value, the avatar is +    rendered as a solid color outline (0 to disable this limit).</string>      <key>Persist</key>      <integer>1</integer>      <key>Type</key> @@ -15575,12 +15597,25 @@        <key>Value</key>        <string />      </map> -    <key>MaximumARC</key> +    <key>IndirectMaxComplexity</key>      <map>        <key>Comment</key> -      <string>Controls RenderAutoMuteRenderWeightLimit in a non-linear fashion</string> +      <string>Controls RenderAvatarMaxComplexity in a non-linear fashion (do +      not set this value)</string>        <key>Persist</key> -      <integer>1</integer> +      <integer>0</integer> +      <key>Type</key> +      <string>U32</string> +      <key>Value</key> +      <integer>0</integer> +    </map> +    <key>IndirectMaxNonImpostors</key> +    <map> +      <key>Comment</key> +      <string>Controls RenderAvatarMaxNonImpostors in a non-linear fashion (do +      not set this value)</string> +      <key>Persist</key> +      <integer>0</integer>        <key>Type</key>        <string>U32</string>        <key>Value</key> diff --git a/indra/newview/app_settings/ultra_graphics.xml b/indra/newview/app_settings/ultra_graphics.xml index dcf63eced5..270f91aeeb 100755 --- a/indra/newview/app_settings/ultra_graphics.xml +++ b/indra/newview/app_settings/ultra_graphics.xml @@ -26,10 +26,10 @@  	<RenderTerrainLODFactor value="2.0"/>  	<!--Default for now-->  	<RenderTreeLODFactor value="1.0"/> -	<!--Avater Impostors and Visual Muting Limits--> -	<RenderUseImpostors value="TRUE"/> -    <RenderAvatarMaxVisible          value="0"/> -    <RenderAutoMuteRenderWeightLimit value="0"/> +	<!--Avater Impostors and Visual Muting Limits (real defaults set +        based on default graphics setting --> +    <RenderAvatarMaxNonImpostors     value="0"/> +    <RenderAvatarMaxComplexity              value="0"/>      <RenderAutoMuteSurfaceAreaLimit  value="10000"/>  	<!--Default for now-->  	<RenderVolumeLODFactor value="2.0"/> diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index 4030324ecb..4b4892f03b 100755 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -31,7 +31,8 @@ RenderAnisotropic			1	1  RenderAvatarCloth			1	1  RenderAvatarLODFactor		1	1.0  RenderAvatarPhysicsLODFactor 1	1.0 -RenderAvatarMaxVisible      1   12 +RenderAvatarMaxNonImpostors 1   12 +RenderAvatarMaxComplexity          1	60000  RenderAvatarVP				1	1  RenderCubeMap				1	1  RenderDelayVBUpdate			1	0 @@ -49,7 +50,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	1.0 -RenderUseImpostors			1	1  RenderVBOEnable				1	1  RenderVBOMappingDisable		1	1  RenderVolumeLODFactor		1	2.0 @@ -66,12 +66,10 @@ RenderShaderLightingMaxLevel	1	3  RenderDeferred				1	1  RenderDeferredSSAO			1	1  RenderShadowDetail			1	2 -WatchdogDisabled				1	1  RenderUseStreamVBO			1	1  RenderFSAASamples			1	16  RenderMaxTextureIndex		1	16 -  //  // Low Graphics Settings (fixed function)  // @@ -80,20 +78,20 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   12 +RenderAvatarMaxComplexity          1	30000  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0  RenderGlowResolutionPow		1	8 +RenderLocalLights			1	0  RenderMaxPartCount			1	0  RenderObjectBump			1	0 -RenderLocalLights			1	0  RenderReflectionDetail		1	0  RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 @@ -103,7 +101,6 @@ RenderShadowDetail			1	0  WLSkyDetail					1	48  RenderFSAASamples			1	0 -  //  // Low Graphics Settings  // @@ -112,20 +109,20 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   12 +RenderAvatarMaxComplexity          1	30000  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0  RenderGlowResolutionPow		1	8 +RenderLocalLights			1	0  RenderMaxPartCount			1	0  RenderObjectBump			1	0 -RenderLocalLights			1	0  RenderReflectionDetail		1	0  RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -155,7 +152,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	1.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -185,7 +181,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -215,7 +210,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -245,7 +239,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -275,7 +268,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -293,19 +285,19 @@ list Ultra  RenderAnisotropic			1	1  RenderAvatarCloth			1	1  RenderAvatarLODFactor		1	1.0 +RenderAvatarPhysicsLODFactor 1	1.0  RenderAvatarVP				1	1  RenderFarClip				1	256  RenderFlexTimeFactor		1	1.0  RenderGlowResolutionPow		1	9 +RenderLocalLights			1	1  RenderMaxPartCount			1	8192  RenderObjectBump			1	1 -RenderLocalLights			1	1  RenderReflectionDetail		1	4  RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	1.0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	2.0  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -315,7 +307,6 @@ RenderDeferredSSAO			1	1  RenderShadowDetail			1	2  RenderFSAASamples			1	2 -  //  // Class Unknown Hardware (unknown)  // @@ -407,18 +398,18 @@ list safe  RenderAnisotropic			1	0  RenderAvatarCloth			0	0  RenderAvatarVP				0	0 +RenderAvatarMaxNonImpostors 1	16 +RenderAvatarMaxComplexity          1	60000  RenderObjectBump			0	0  RenderLocalLights			1	0  RenderMaxPartCount			1	1024  RenderTerrainDetail 		1	0 -RenderUseImpostors			0	0  RenderVBOEnable				1	0  RenderReflectionDetail		0	0  WindLightUseAtmosShaders	0	0  RenderDeferred				0	0  RenderDeferredSSAO			0	0  RenderShadowDetail			0	0 -		  //  // CPU based feature masks @@ -462,37 +453,30 @@ UseOcclusion				0	0  list Intel_830M  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_845G					  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_855GM				  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_865G			  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_900		  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_915GM	  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_915G					  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_945GM			  RenderTerrainDetail			1	0 diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt index 6d5284c602..121559bb7a 100755 --- a/indra/newview/featuretable_linux.txt +++ b/indra/newview/featuretable_linux.txt @@ -31,7 +31,7 @@ RenderAnisotropic			1	1  RenderAvatarCloth			1	1  RenderAvatarLODFactor		1	1.0  RenderAvatarPhysicsLODFactor 1	1.0 -RenderAvatarMaxVisible      1   12 +RenderAvatarMaxNonImpostors 1   12  RenderAvatarVP				1	1  RenderCubeMap				1	1  RenderDelayVBUpdate			1	0 @@ -49,7 +49,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	1.0 -RenderUseImpostors			1	1  RenderVBOEnable				1	1  RenderVBOMappingDisable		1	1  RenderVolumeLODFactor		1	2.0 @@ -77,7 +76,7 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   3  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0 @@ -90,7 +89,6 @@ RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -108,7 +106,7 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   3  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0 @@ -121,7 +119,6 @@ RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 @@ -151,7 +148,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	1.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -181,7 +177,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -211,7 +206,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -241,7 +235,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -271,7 +264,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -301,7 +293,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	1.0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	2.0  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -405,7 +396,6 @@ RenderAvatarVP				0	0  RenderObjectBump			0	0  RenderMaxPartCount			1	1024  RenderTerrainDetail 		1	0 -RenderUseImpostors			0	0  RenderVBOEnable				1	0  RenderReflectionDetail		0	0  WindLightUseAtmosShaders	0	0 diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index 628a96e988..c975678cea 100755 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -4,7 +4,7 @@ version 37  // resetting the graphics preferences of all users to the recommended  // defaults.  This should be as rare an event as we can manage. -// NOTE: This is mostly identical to featuretable_mac.txt with a few differences +// NOTE: This is mostly identical to featuretable.txt with a few differences  // Should be combined into one table  // @@ -31,7 +31,8 @@ RenderAnisotropic				1	0  RenderAvatarCloth				1	1  RenderAvatarLODFactor			1	1.0  RenderAvatarPhysicsLODFactor 1	1.0 -RenderAvatarMaxVisible          1   12 +RenderAvatarMaxNonImpostors     1   12 +RenderAvatarMaxComplexity              1	60000  RenderAvatarVP					1	1  RenderCubeMap					1	1  RenderDelayVBUpdate				1	0 @@ -49,7 +50,6 @@ RenderTerrainDetail				1	1  RenderTerrainLODFactor			1	2.0  RenderTransparentWater			1	1  RenderTreeLODFactor				1	1.0 -RenderUseImpostors				1	1  RenderVBOEnable					1	1  RenderVBOMappingDisable			1	1  RenderVolumeLODFactor			1	2.0 @@ -66,7 +66,6 @@ RenderShaderLightingMaxLevel	1	3  RenderDeferred				1	1  RenderDeferredSSAO			1	1  RenderShadowDetail			1	2 -WatchdogDisabled				1	1  RenderUseStreamVBO			1	1  RenderFSAASamples			1	16  RenderMaxTextureIndex		1	16 @@ -79,7 +78,8 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   12 +RenderAvatarMaxComplexity          1	30000  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0 @@ -92,7 +92,6 @@ RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 @@ -110,7 +109,8 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   12 +RenderAvatarMaxComplexity          1	30000  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0 @@ -123,7 +123,6 @@ RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -153,7 +152,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	1.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -183,7 +181,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -213,7 +210,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -243,7 +239,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -273,7 +268,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -304,7 +298,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	1.0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	2.0  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -319,6 +312,9 @@ RenderFSAASamples			1	2  //  list Unknown  RenderVBOEnable				1	0 +RenderShadowDetail			1	0 +RenderDeferred				1	0 +RenderDeferredSSAO			1	0  //  // Class 0 Hardware (just old) @@ -343,6 +339,7 @@ RenderVBOEnable				1	1  //  list Class3  RenderVBOEnable				1	1 +  //  // Class 4 Hardware  // @@ -394,11 +391,12 @@ list safe  RenderAnisotropic			1	0  RenderAvatarCloth			0	0  RenderAvatarVP				0	0 -RenderLocalLights			1	0 +RenderAvatarMaxNonImpostors 1	16 +RenderAvatarMaxComplexity          1	60000  RenderObjectBump			0	0 +RenderLocalLights			1	0  RenderMaxPartCount			1	1024  RenderTerrainDetail 		1	0 -RenderUseImpostors			0	0  RenderVBOEnable				1	0  RenderReflectionDetail		0	0  WindLightUseAtmosShaders	0	0 @@ -523,7 +521,6 @@ Disregard96DefaultDrawDistance	1	0  list NVIDIA_GeForce_8600  RenderTextureMemoryMultiple			1	1	 -RenderUseImpostors				0	0  UseOcclusion				0	0  /// tweaked ATI to 96 Draw distance diff --git a/indra/newview/featuretable_solaris.txt b/indra/newview/featuretable_solaris.txt index e7cae1abdc..f6f0a9cb17 100755 --- a/indra/newview/featuretable_solaris.txt +++ b/indra/newview/featuretable_solaris.txt @@ -129,7 +129,7 @@ RenderUseFBO		1	0  list low  RenderVBO			1	0  RenderAniso			1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   3  RenderLighting		1	0  list medium diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt index 68e09d010e..053dfb64d4 100755 --- a/indra/newview/featuretable_xp.txt +++ b/indra/newview/featuretable_xp.txt @@ -31,7 +31,7 @@ RenderAnisotropic			1	1  RenderAvatarCloth			1	1  RenderAvatarLODFactor		1	1.0  RenderAvatarPhysicsLODFactor 1	1.0 -RenderAvatarMaxVisible      1   12 +RenderAvatarMaxNonImpostors 1   12  RenderAvatarVP				1	1  RenderCubeMap				1	1  RenderDelayVBUpdate			1	0 @@ -49,7 +49,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	1.0 -RenderUseImpostors			1	1  RenderVBOEnable				1	1  RenderVBOMappingDisable		1	1  RenderVolumeLODFactor		1	2.0 @@ -79,7 +78,7 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   3  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0 @@ -92,7 +91,6 @@ RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	0  WindLightUseAtmosShaders	1	0 @@ -110,7 +108,7 @@ RenderAnisotropic			1	0  RenderAvatarCloth			1	0  RenderAvatarLODFactor		1	0  RenderAvatarPhysicsLODFactor 1	0 -RenderAvatarMaxVisible      1   3 +RenderAvatarMaxNonImpostors 1   3  RenderAvatarVP				1	0  RenderFarClip				1	64  RenderFlexTimeFactor		1	0 @@ -123,7 +121,6 @@ RenderTerrainDetail			1	0  RenderTerrainLODFactor		1	1  RenderTransparentWater		1	0  RenderTreeLODFactor			1	0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	0.5  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -153,7 +150,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	1.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	0 @@ -183,7 +179,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -213,7 +208,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -243,7 +237,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -273,7 +266,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	0.5 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	1.125  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -303,7 +295,6 @@ RenderTerrainDetail			1	1  RenderTerrainLODFactor		1	2.0  RenderTransparentWater		1	1  RenderTreeLODFactor			1	1.0 -RenderUseImpostors			1	1  RenderVolumeLODFactor		1	2.0  VertexShaderEnable			1	1  WindLightUseAtmosShaders	1	1 @@ -404,7 +395,6 @@ RenderAvatarVP				0	0  RenderObjectBump			0	0  RenderMaxPartCount			1	1024  RenderTerrainDetail 		1	0 -RenderUseImpostors			0	0  RenderVBOEnable				1	0  RenderReflectionDetail		0	0  WindLightUseAtmosShaders	0	0 @@ -454,37 +444,30 @@ UseOcclusion				0	0  list Intel_830M  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_845G					  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_855GM				  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_865G			  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_900		  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_915GM	  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_915G					  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			0	0  list Intel_945GM			  RenderTerrainDetail			1	0 @@ -501,7 +484,6 @@ RenderVBOEnable				1	0  list Intel_965  RenderTerrainDetail			1	0  RenderVBOEnable				1	0 -RenderUseImpostors			1	0  UseOcclusion				0	0  list Intel_G33 diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 13f4e6ec63..27e8b83e13 100755 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -588,7 +588,7 @@ static void settings_to_globals()  	LLVOTree::sTreeFactor				= gSavedSettings.getF32("RenderTreeLODFactor");  	LLVOAvatar::sLODFactor				= gSavedSettings.getF32("RenderAvatarLODFactor");  	LLVOAvatar::sPhysicsLODFactor		= gSavedSettings.getF32("RenderAvatarPhysicsLODFactor"); -	LLVOAvatar::sMaxVisible				= (U32)gSavedSettings.getS32("RenderAvatarMaxVisible"); +	LLVOAvatar::updateImpostorRendering(gSavedSettings.getU32("RenderAvatarMaxNonImpostors"));  	LLVOAvatar::sVisibleInFirstPerson	= gSavedSettings.getBOOL("FirstPersonAvatarVisible");  	// clamp auto-open time to some minimum usable value  	LLFolderView::sAutoOpenTime			= llmax(0.25f, gSavedSettings.getF32("FolderAutoOpenDelay")); @@ -610,7 +610,6 @@ static void settings_modify()  	LLRenderTarget::sUseFBO				= gSavedSettings.getBOOL("RenderDeferred");  	LLPipeline::sRenderBump				= gSavedSettings.getBOOL("RenderObjectBump");  	LLPipeline::sRenderDeferred		= LLPipeline::sRenderBump && gSavedSettings.getBOOL("RenderDeferred"); -	LLVOAvatar::sUseImpostors			= gSavedSettings.getBOOL("RenderUseImpostors");  	LLVOSurfacePatch::sLODFactor		= gSavedSettings.getF32("RenderTerrainLODFactor");  	LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor; //square lod factor to get exponential range of [1,4]  	gDebugGL = gSavedSettings.getBOOL("RenderDebugGL") || gDebugSession; diff --git a/indra/newview/llavatarrenderinfoaccountant.cpp b/indra/newview/llavatarrenderinfoaccountant.cpp index 8631f245a9..cdaf97ff62 100644 --- a/indra/newview/llavatarrenderinfoaccountant.cpp +++ b/indra/newview/llavatarrenderinfoaccountant.cpp @@ -248,7 +248,7 @@ void LLAvatarRenderInfoAccountant::sendRenderInfoToRegion(LLViewerRegion * regio  					!avatar->isDead() &&								// Not dead yet  					avatar->getObjectHost() == regionp->getHost())		// Ensure it's on the same region  				{ -					avatar->calculateUpdateRenderCost();			// Make sure the numbers are up-to-date +					avatar->calculateUpdateRenderComplexity();			// Make sure the numbers are up-to-date  					LLSD info = LLSD::emptyMap();  					if (avatar->getVisualComplexity() > 0) diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp index e1d3d1a905..e58c2c1037 100755 --- a/indra/newview/lldrawpoolavatar.cpp +++ b/indra/newview/lldrawpoolavatar.cpp @@ -1281,13 +1281,6 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)  		return;  	} -	llassert(LLPipeline::sImpostorRender || !avatarp->isVisuallyMuted()); - -	/*if (single_avatar && avatarp->mSpecialRenderMode >= 1) // 1=anim preview, 2=image preview,  3=morph view -	{ -		gPipeline.enableLightsAvatarEdit(LLColor4(.5f, .5f, .5f, 1.f)); -	}*/ -	  	if (pass == 1)  	{  		// render rigid meshes (eyeballs) first diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp index af84aea6a6..5c8926e54c 100755 --- a/indra/newview/llfeaturemanager.cpp +++ b/indra/newview/llfeaturemanager.cpp @@ -606,7 +606,7 @@ void LLFeatureManager::applyRecommendedSettings()  	// cap the level at 2 (high)  	U32 level = llmax(GPU_CLASS_0, llmin(mGPUClass, GPU_CLASS_5)); -	LL_INFOS() << "Applying Recommended Features" << LL_ENDL; +	LL_INFOS("RenderInit") << "Applying Recommended Features for level " << level << LL_ENDL;  	setGraphicsLevel(level, false);  	gSavedSettings.setU32("RenderQualityPerformance", level); @@ -813,7 +813,7 @@ void LLFeatureManager::applyBaseMasks()  	if (osInfo.mMajorVer == 10 && osInfo.mMinorVer < 7)  	{  		maskFeatures("OSX_10_6_8"); -        } +	}  #endif  	// now mask by gpu string diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 4b45837ec0..21c684ab25 100755 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -120,6 +120,18 @@ char const* const VISIBILITY_HIDDEN = "hidden";  //control value for middle mouse as talk2push button  const static std::string MIDDLE_MOUSE_CV = "MiddleMouse"; +/// This must equal the maximum value set for the IndirectMaxComplexity slider in panel_preferences_graphics1.xml +static const U32 INDIRECT_MAX_ARC_OFF = 101; // all the way to the right == disabled +static const U32 MIN_INDIRECT_ARC_LIMIT = 1; // must match minimum of IndirectMaxComplexity in panel_preferences_graphics1.xml +static const U32 MAX_INDIRECT_ARC_LIMIT = INDIRECT_MAX_ARC_OFF-1; // one short of all the way to the right... + +/// These are the effective range of values for RenderAvatarMaxComplexity +static const F32 MIN_ARC_LIMIT =  20000.0f; +static const F32 MAX_ARC_LIMIT = 300000.0f; +static const F32 MIN_ARC_LOG = log(MIN_ARC_LIMIT); +static const F32 MAX_ARC_LOG = log(MAX_ARC_LIMIT); +static const F32 ARC_LIMIT_MAP_SCALE = (MAX_ARC_LOG - MIN_ARC_LOG) / (MAX_INDIRECT_ARC_LIMIT - MIN_INDIRECT_ARC_LIMIT); +  class LLVoiceSetKeyDialog : public LLModalDialog  {  public: @@ -793,6 +805,10 @@ void LLFloaterPreference::updateShowFavoritesCheckbox(bool val)  void LLFloaterPreference::setHardwareDefaults()  {  	LLFeatureManager::getInstance()->applyRecommendedSettings(); + +	// reset indirects before refresh because we may have changed what they control +	LLFloaterPreferenceGraphicsAdvanced::setIndirectControls();  +  	refreshEnabledGraphics();  	gSavedSettings.setString("PresetGraphicActive", "");  	LLPresetsManager::getInstance()->triggerChangeSignal(); @@ -805,7 +821,9 @@ void LLFloaterPreference::setHardwareDefaults()  		LLView* view = *iter;  		LLPanelPreference* panel = dynamic_cast<LLPanelPreference*>(view);  		if (panel) +		{  			panel->setHardwareDefaults(); +		}  	}  } @@ -1273,12 +1291,6 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()  	ctrl_shadow->setEnabled(enabled);  	shadow_text->setEnabled(enabled); -	LLTextBox* maximum_arc_text = getChild<LLTextBox>("MaximumARCText"); - -	enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseImpostors") && gSavedSettings.getBOOL("RenderUseImpostors"); -	getChildView("MaximumARC")->setEnabled(enabled); -	maximum_arc_text->setEnabled(enabled); -  	// Hardware settings  	F32 mem_multiplier = gSavedSettings.getF32("RenderTextureMemoryMultiple");  	S32Megabytes min_tex_mem = LLViewerTextureList::getMinVideoRamSetting(); @@ -1314,6 +1326,48 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()  	getChild<LLButton>("default_creation_permissions")->setEnabled(LLStartUp::getStartupState() < STATE_STARTED ? false : true);  } +// static +void LLFloaterPreferenceGraphicsAdvanced::setIndirectControls() +{ +	/* +	 * We have controls that have an indirect relationship between the control +	 * values and adjacent text and the underlying setting they influence. +	 * In each case, the control and its associated setting are named Indirect<something> +	 * This method interrogates the controlled setting and establishes the +	 * appropriate value for the indirect control. It must be called whenever the +	 * underlying setting may have changed other than through the indirect control, +	 * such as when the 'Reset all to recommended settings' button is used... +	 */ +	setIndirectMaxNonImpostors(); +	setIndirectMaxArc(); +} + +// static +void LLFloaterPreferenceGraphicsAdvanced::setIndirectMaxNonImpostors() +{ +	U32 max_non_impostors = gSavedSettings.getU32("RenderAvatarMaxNonImpostors"); +	// for this one, we just need to make zero, which means off, the max value of the slider +	U32 indirect_max_non_impostors = (0 == max_non_impostors) ? LLVOAvatar::IMPOSTORS_OFF : max_non_impostors; +	gSavedSettings.setU32("IndirectMaxNonImpostors", indirect_max_non_impostors); +} + +void LLFloaterPreferenceGraphicsAdvanced::setIndirectMaxArc() +{ +	U32 max_arc = gSavedSettings.getU32("RenderAvatarMaxComplexity"); +	U32 indirect_max_arc; +	if (0 == max_arc) +	{ +		// the off position is all the way to the right, so set to control max +		indirect_max_arc = INDIRECT_MAX_ARC_OFF; +	} +	else +	{ +		// This is the inverse of the calculation in updateMaxComplexity +		indirect_max_arc = (U32)((log(max_arc) - MIN_ARC_LOG) / ARC_LIMIT_MAP_SCALE) + MIN_INDIRECT_ARC_LIMIT; +	} +	gSavedSettings.setU32("IndirectMaxComplexity", indirect_max_arc); +} +  void LLFloaterPreferenceGraphicsAdvanced::disableUnavailableSettings()  {	  	LLComboBox* ctrl_reflections   = getChild<LLComboBox>("Reflections"); @@ -1322,8 +1376,6 @@ void LLFloaterPreferenceGraphicsAdvanced::disableUnavailableSettings()  	LLCheckBoxCtrl* ctrl_avatar_cloth  = getChild<LLCheckBoxCtrl>("AvatarCloth");  	LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");  	LLCheckBoxCtrl* ctrl_wind_light    = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders"); -	LLSliderCtrl* ctrl_maximum_arc = getChild<LLSliderCtrl>("MaximumARC"); -	LLTextBox* maximum_arc_text = getChild<LLTextBox>("MaximumARCText");  	LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");  	LLComboBox* ctrl_shadows = getChild<LLComboBox>("ShadowDetail");  	LLTextBox* shadows_text = getChild<LLTextBox>("RenderShadowDetailText"); @@ -1463,13 +1515,6 @@ void LLFloaterPreferenceGraphicsAdvanced::disableUnavailableSettings()  		ctrl_avatar_cloth->setEnabled(FALSE);  		ctrl_avatar_cloth->setValue(FALSE);  	} - -	// disabled impostors -	if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseImpostors")) -	{ -		ctrl_maximum_arc->setEnabled(FALSE); -		maximum_arc_text->setEnabled(FALSE); -	}  }  void LLFloaterPreference::refresh() @@ -1485,8 +1530,6 @@ void LLFloaterPreference::refresh()  void LLFloaterPreferenceGraphicsAdvanced::refresh()  { -	refreshEnabledState(); -  	getChild<LLUICtrl>("fsaa")->setValue((LLSD::Integer)  gSavedSettings.getU32("RenderFSAASamples"));  	// sliders and their text boxes @@ -1501,9 +1544,9 @@ void LLFloaterPreferenceGraphicsAdvanced::refresh()  	updateSliderText(getChild<LLSliderCtrl>("RenderPostProcess",	true), getChild<LLTextBox>("PostProcessText",			true));  	updateSliderText(getChild<LLSliderCtrl>("SkyMeshDetail",		true), getChild<LLTextBox>("SkyMeshDetailText",			true));  	updateSliderText(getChild<LLSliderCtrl>("TerrainDetail",		true), getChild<LLTextBox>("TerrainDetailText",			true));	 -	updateImpostorsText(getChild<LLSliderCtrl>("MaxNumberAvatarDrawn",		true), getChild<LLTextBox>("ImpostorsText",			true));	 -	updateMaximumArcText(getChild<LLSliderCtrl>("MaximumARC",		true), getChild<LLTextBox>("MaximumARCText",			true));	 - +	setIndirectControls(); +	setMaxNonImpostorsText(gSavedSettings.getU32("RenderAvatarMaxNonImpostors"),getChild<LLTextBox>("IndirectMaxNonImpostorsText", true));	 +	setMaxComplexityText(gSavedSettings.getU32("RenderAvatarMaxComplexity"),getChild<LLTextBox>("IndirectMaxComplexityText", true));	  	refreshEnabledState();  } @@ -1785,59 +1828,70 @@ void LLFloaterPreferenceGraphicsAdvanced::updateSliderText(LLSliderCtrl* ctrl, L  	}  } -void LLFloaterPreferenceGraphicsAdvanced::updateImpostorsText(LLSliderCtrl* ctrl, LLTextBox* text_box) +void LLFloaterPreferenceGraphicsAdvanced::updateMaxNonImpostors()  { -	F32 value = (F32)ctrl->getValue().asReal(); +	// Called when the IndirectMaxNonImpostors control changes +	// Responsible for fixing the slider label (IndirectMaxNonImpostorsText) and setting RenderAvatarMaxNonImpostors +	LLSliderCtrl* ctrl = getChild<LLSliderCtrl>("IndirectMaxNonImpostors",true); +	U32 value = ctrl->getValue().asInteger(); -	if (value < IMPOSTORS_OFF) +	if (0 == value || LLVOAvatar::IMPOSTORS_OFF <= value)  	{ -		text_box->setText(llformat("%0.0f", value)); -		if (!gSavedSettings.getBOOL("RenderUseImpostors")) -		{ -			gSavedSettings.setBOOL("RenderUseImpostors", true); -		} +		value=0;  	} -	else +	gSavedSettings.setU32("RenderAvatarMaxNonImpostors", value); +	LLVOAvatar::updateImpostorRendering(value); // make it effective immediately +	setMaxNonImpostorsText(value, getChild<LLTextBox>("IndirectMaxNonImpostorsText")); +} + +void LLFloaterPreferenceGraphicsAdvanced::setMaxNonImpostorsText(U32 value, LLTextBox* text_box) +{ +	if (0 == value)  	{  		text_box->setText(LLTrans::getString("no_limit")); -		gSavedSettings.setBOOL("RenderUseImpostors", false); +	} +	else +	{ +		text_box->setText(llformat("%d", value));  	}  } -void LLFloaterPreferenceGraphicsAdvanced::updateMaximumArcText(LLSliderCtrl* ctrl, LLTextBox* text_box) +void LLFloaterPreferenceGraphicsAdvanced::updateMaxComplexity()  { -	F32 min_result = 20000.0f; -	F32 max_result = 300000.0f; +	// Called when the IndirectMaxComplexity control changes +	// Responsible for fixing the slider label (IndirectMaxComplexityText) and setting RenderAvatarMaxComplexity +	LLSliderCtrl* ctrl = getChild<LLSliderCtrl>("IndirectMaxComplexity"); +	U32 indirect_value = ctrl->getValue().asInteger(); +	U32 max_arc; +	 +	if (INDIRECT_MAX_ARC_OFF == indirect_value) +	{ +		// The 'off' position is when the slider is all the way to the right,  +		// which is a value of INDIRECT_MAX_ARC_OFF, +		// so it is necessary to set max_arc to 0 disable muted avatars. +		max_arc = 0; +	} +	else +	{ +		// if this is changed, the inverse calculation in setIndirectMaxArc +		// must be changed to match +		max_arc = (U32)exp(MIN_ARC_LOG + (ARC_LIMIT_MAP_SCALE * (indirect_value - MIN_INDIRECT_ARC_LIMIT))); +	} -	F32 value = (F32)ctrl->getValue().asReal(); +	gSavedSettings.setU32("RenderAvatarMaxComplexity", (U32)max_arc); +	setMaxComplexityText(max_arc, getChild<LLTextBox>("IndirectMaxComplexityText")); +} -	if (101.0f == value) +void LLFloaterPreferenceGraphicsAdvanced::setMaxComplexityText(U32 value, LLTextBox* text_box) +{ +	if (0 == value)  	{ -		// It has been decided that having the slider all the way to the right will be the off position, which -		// is a value of 101, so it is necessary to change value to 0 disable impostor generation. -		value = 0.0f;  		text_box->setText(LLTrans::getString("no_limit"));  	}  	else  	{ - -		// 100 is the maximum value of this control set in panel_preferences_graphics1.xml -		F32 minp = 1.0f; -		F32 maxp = 100.0f; - -		// The result should be between min_result and max_result -		F32 minv = log(min_result); -		F32 maxv = log(max_result); - -		// calculate adjustment factor -		F32 scale = (maxv - minv) / (maxp - minp); - -		value = exp(minv + scale * (value - minp)); - -		text_box->setText(llformat("%0.0f", value)); +		text_box->setText(llformat("%d", value));  	} - -	gSavedSettings.setU32("RenderAutoMuteRenderWeightLimit", (U32)value);  }  void LLFloaterPreference::onChangeMaturity() @@ -2460,13 +2514,14 @@ void LLPanelPreferenceGraphics::saveSettings()  void LLPanelPreferenceGraphics::setHardwareDefaults()  {  	resetDirtyChilds(); -	LLPanelPreference::setHardwareDefaults();  }  LLFloaterPreferenceGraphicsAdvanced::LLFloaterPreferenceGraphicsAdvanced(const LLSD& key)  	: LLFloater(key)  {  	mCommitCallbackRegistrar.add("Pref.VertexShaderEnable",		boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onVertexShaderEnable, this)); +	mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxNonImpostors", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxNonImpostors,this)); +	mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxComplexity",   boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxComplexity,this));  }  LLFloaterPreferenceGraphicsAdvanced::~LLFloaterPreferenceGraphicsAdvanced() diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index a123e0502f..5058e7bb23 100755 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -58,10 +58,6 @@ typedef enum  	} EGraphicsSettings; -// 65 is the maximum value for impostors set in the xml file.  When the slider reaches this -// value impostors are turned off. -const U32	IMPOSTORS_OFF = 66; -  // Floater to control preferences (display, audio, bandwidth, general.  class LLFloaterPreference : public LLFloater, public LLAvatarPropertiesObserver, public LLConversationLogObserver  { @@ -117,10 +113,10 @@ protected:  	// callback for defaults  	void setHardwareDefaults();  	void setRecommended(); +	// callback for when client turns on shaders +	void onVertexShaderEnable();  	// callback for when client turns on impostors  	void onAvatarImpostorsEnable(); -		// callback for when client turns on shaders -	void onVertexShaderEnable();  	// callback for commit in the "Single click on land" and "Double click on land" comboboxes.  	void onClickActionChange(); @@ -200,6 +196,7 @@ private:  	std::string mDirectoryVisibility;  	LLAvatarData mAvatarProperties; +	LOG_CLASS(LLFloaterPreference);  };  class LLPanelPreference : public LLPanel @@ -243,6 +240,7 @@ private:  	string_color_map_t mSavedColors;  	Updater* mBandWidthUpdater; +	LOG_CLASS(LLPanelPreference);  };  class LLPanelPreferenceGraphics : public LLPanelPreference @@ -264,6 +262,7 @@ protected:  private:  	void onPresetsListChange(); +	LOG_CLASS(LLPanelPreferenceGraphics);  };  class LLFloaterPreferenceGraphicsAdvanced : public LLFloater @@ -276,11 +275,17 @@ public:  	void refreshEnabledGraphics();  	void refreshEnabledState();  	void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box); -	void updateImpostorsText(LLSliderCtrl* ctrl, LLTextBox* text_box); -	void updateMaximumArcText(LLSliderCtrl* ctrl, LLTextBox* text_box); +	void updateMaxNonImpostors(); +	void setMaxNonImpostorsText(U32 value, LLTextBox* text_box); +	void updateMaxComplexity(); +	void setMaxComplexityText(U32 value, LLTextBox* text_box); +	static void setIndirectControls(); +	static void setIndirectMaxNonImpostors(); +	static void setIndirectMaxArc();  	void refresh();  	// callback for when client turns on shaders  	void onVertexShaderEnable(); +	LOG_CLASS(LLFloaterPreferenceGraphicsAdvanced);  };  class LLFloaterPreferenceProxy : public LLFloater @@ -308,7 +313,7 @@ private:  	bool mSocksSettingsDirty;  	typedef std::map<LLControlVariable*, LLSD> control_values_map_t;  	control_values_map_t mSavedValues; - +	LOG_CLASS(LLFloaterPreferenceProxy);  }; diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index c6eae68083..16f40fb747 100755 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -219,12 +219,6 @@ static bool handleAvatarPhysicsLODChanged(const LLSD& newvalue)  	return true;  } -static bool handleAvatarMaxVisibleChanged(const LLSD& newvalue) -{ -	LLVOAvatar::sMaxVisible = (U32) newvalue.asInteger(); -	return true; -} -  static bool handleTerrainLODChanged(const LLSD& newvalue)  {  		LLVOSurfacePatch::sLODFactor = (F32)newvalue.asReal(); @@ -418,12 +412,6 @@ static bool handleRenderBumpChanged(const LLSD& newval)  	return true;  } -static bool handleRenderUseImpostorsChanged(const LLSD& newvalue) -{ -	LLVOAvatar::sUseImpostors = newvalue.asBoolean(); -	return true; -} -  static bool handleRenderDebugGLChanged(const LLSD& newvalue)  {  	gDebugGL = newvalue.asBoolean() || gDebugSession; @@ -630,7 +618,6 @@ void settings_setup_listeners()  	gSavedSettings.getControl("RenderAvatarCloth")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));  	gSavedSettings.getControl("WindLightUseAtmosShaders")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));  	gSavedSettings.getControl("RenderGammaFull")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2)); -	gSavedSettings.getControl("RenderAvatarMaxVisible")->getSignal()->connect(boost::bind(&handleAvatarMaxVisibleChanged, _2));  	gSavedSettings.getControl("RenderVolumeLODFactor")->getSignal()->connect(boost::bind(&handleVolumeLODChanged, _2));  	gSavedSettings.getControl("RenderAvatarLODFactor")->getSignal()->connect(boost::bind(&handleAvatarLODChanged, _2));  	gSavedSettings.getControl("RenderAvatarPhysicsLODFactor")->getSignal()->connect(boost::bind(&handleAvatarPhysicsLODChanged, _2)); @@ -648,7 +635,6 @@ void settings_setup_listeners()  	gSavedSettings.getControl("RenderObjectBump")->getSignal()->connect(boost::bind(&handleRenderBumpChanged, _2));  	gSavedSettings.getControl("RenderMaxVBOSize")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));  	gSavedSettings.getControl("RenderDeferredNoise")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2)); -	gSavedSettings.getControl("RenderUseImpostors")->getSignal()->connect(boost::bind(&handleRenderUseImpostorsChanged, _2));  	gSavedSettings.getControl("RenderDebugGL")->getSignal()->connect(boost::bind(&handleRenderDebugGLChanged, _2));  	gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _2));  	gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2)); diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index b63222590d..57c1643b8d 100755 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -677,7 +677,7 @@ public:  			{  				LLVOAvatar* avatar = av_iter->second; -				avatar->calculateUpdateRenderCost();			// Make sure the numbers are up-to-date +				avatar->calculateUpdateRenderComplexity(); // Make sure the numbers are up-to-date  				trunc_name = utf8str_truncate(avatar->getFullname(), 16);  				addText(xpos, ypos, llformat("%s : rez %d, weight %d, bytes %d area %.2f", diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 0a35b2bb00..85c60a74cc 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -613,7 +613,7 @@ private:  //-----------------------------------------------------------------------------  LLAvatarAppearanceDictionary *LLVOAvatar::sAvatarDictionary = NULL;  S32 LLVOAvatar::sFreezeCounter = 0; -U32 LLVOAvatar::sMaxVisible = 12; +U32 LLVOAvatar::sMaxNonImpostors = 12; // overridden based on graphics setting  F32 LLVOAvatar::sRenderDistance = 256.f;  S32	LLVOAvatar::sNumVisibleAvatars = 0;  S32	LLVOAvatar::sNumLODChangesThisFrame = 0; @@ -640,7 +640,7 @@ BOOL LLVOAvatar::sShowFootPlane = FALSE;  BOOL LLVOAvatar::sVisibleInFirstPerson = FALSE;  F32 LLVOAvatar::sLODFactor = 1.f;  F32 LLVOAvatar::sPhysicsLODFactor = 1.f; -BOOL LLVOAvatar::sUseImpostors = FALSE; +bool LLVOAvatar::sUseImpostors = false;  BOOL LLVOAvatar::sJointDebug = FALSE;  F32 LLVOAvatar::sUnbakedTime = 0.f;  F32 LLVOAvatar::sUnbakedUpdateTime = 0.f; @@ -2135,7 +2135,7 @@ void LLVOAvatar::idleUpdate(LLAgent &agent, const F64 &time)  	}  	idleUpdateNameTag( root_pos_last ); -	idleUpdateRenderCost(); +	idleUpdateRenderComplexity();  }  void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled) @@ -3079,7 +3079,7 @@ bool LLVOAvatar::isVisuallyMuted() const  	{  			static LLCachedControl<U32> max_attachment_bytes(gSavedSettings, "RenderAutoMuteByteLimit", 0);  			static LLCachedControl<F32> max_attachment_area(gSavedSettings, "RenderAutoMuteSurfaceAreaLimit", 0.0); -			static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit", 0); +			static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAvatarMaxComplexity", 0);  			if (mVisuallyMuteSetting == ALWAYS_VISUAL_MUTE)  			{	// Always want to see this AV as an impostor @@ -3234,18 +3234,18 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)  		{ // visually muted avatars update at 16 hz  			mUpdatePeriod = 16;  		} -		else if (mVisibilityRank <= LLVOAvatar::sMaxVisible || -			mDrawable->mDistanceWRTCamera < 1.f + mag) -		{ //first 25% of max visible avatars are not impostored -			//also, don't impostor avatars whose bounding box may be penetrating the  -			//impostor camera near clip plane +		else if (   mVisibilityRank <= LLVOAvatar::sMaxNonImpostors +				 || mDrawable->mDistanceWRTCamera < 1.f + mag) +		{   // first 25% of max visible avatars are not impostored +			// also, don't impostor avatars whose bounding box may be penetrating the  +			// impostor camera near clip plane  			mUpdatePeriod = 1;  		} -		else if (mVisibilityRank > LLVOAvatar::sMaxVisible * 4) +		else if (mVisibilityRank > LLVOAvatar::sMaxNonImpostors * 4)  		{ //background avatars are REALLY slow updating impostors  			mUpdatePeriod = 16;  		} -		else if (mVisibilityRank > LLVOAvatar::sMaxVisible * 3) +		else if (mVisibilityRank > LLVOAvatar::sMaxNonImpostors * 3)  		{ //back 25% of max visible avatars are slow updating impostors  			mUpdatePeriod = 8;  		} @@ -8019,7 +8019,35 @@ void LLVOAvatar::getImpostorValues(LLVector4a* extents, LLVector3& angle, F32& d  	angle.mV[2] = da;  } -void LLVOAvatar::idleUpdateRenderCost() +// static +const U32 LLVOAvatar::IMPOSTORS_OFF = 66; /* Must equal the maximum allowed the RenderAvatarMaxNonImpostors +										   * slider in panel_preferences_graphics1.xml */ + +// static +void LLVOAvatar::updateImpostorRendering(U32 newMaxNonImpostorsValue) +{ +	U32  oldmax = sMaxNonImpostors; +	bool oldflg = sUseImpostors; +	 +	if (IMPOSTORS_OFF <= newMaxNonImpostorsValue) +	{ +		sMaxNonImpostors = 0; +	} +	else +	{ +		sMaxNonImpostors = newMaxNonImpostorsValue; +	} +	// the sUseImpostors flag depends on whether or not sMaxNonImpostors is set to the no-limit value (0) +	sUseImpostors = (0 != sMaxNonImpostors); + +	LL_DEBUGS("AvatarRender") +		<< "was " << (oldflg ? "use" : "don't use" ) << " impostors (max " << oldmax << "); " +		<< "now " << (sUseImpostors ? "use" : "don't use" ) << " impostors (max " << sMaxNonImpostors << "); " +		<< LL_ENDL; +} + + +void LLVOAvatar::idleUpdateRenderComplexity()  {  	if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_AVATAR_DRAW_INFO))  	{ @@ -8044,11 +8072,11 @@ void LLVOAvatar::idleUpdateRenderCost()  		 *       controls muting MUST match that in the isVisuallyMuted method.  		 */ -		// Render Cost (ARC) -		calculateUpdateRenderCost();				// Update mVisualComplexity if needed	 +		// Render Complexity +		calculateUpdateRenderComplexity();				// Update mVisualComplexity if needed	 -		static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAutoMuteRenderWeightLimit", 0); -		info_line = llformat("%d ARC", mVisualComplexity); +		static LLCachedControl<U32> max_render_cost(gSavedSettings, "RenderAvatarMaxComplexity", 0); +		info_line = llformat("%d Complexity", mVisualComplexity);  		if (max_render_cost != 0) // zero means don't care, so don't bother coloring based on this  		{ @@ -8068,7 +8096,7 @@ void LLVOAvatar::idleUpdateRenderCost()  		// Visual rank  		info_line = llformat("%d rank", mVisibilityRank);  		// Use grey for imposters, white for normal rendering or no impostors -		info_color.set((sMaxVisible > 0 && mVisibilityRank > sMaxVisible) ? LLColor4::grey : LLColor4::white); +		info_color.set((sMaxNonImpostors > 0 && mVisibilityRank > sMaxNonImpostors) ? LLColor4::grey : LLColor4::white);  		info_style = LLFontGL::NORMAL;  		mText->addLine(info_line, info_color, info_style); @@ -8116,9 +8144,9 @@ void LLVOAvatar::idleUpdateRenderCost()  // Calculations for mVisualComplexity value -void LLVOAvatar::calculateUpdateRenderCost() +void LLVOAvatar::calculateUpdateRenderComplexity()  { -	static const U32 ARC_BODY_PART_COST = 200; +	static const U32 COMPLEXITY_BODY_PART_COST = 200;  	// Diagnostic list of all textures on our avatar  	static std::set<LLUUID> all_textures; @@ -8138,7 +8166,7 @@ void LLVOAvatar::calculateUpdateRenderCost()  			{  				if (isTextureVisible(tex_index))  				{ -					cost +=ARC_BODY_PART_COST; +					cost +=COMPLEXITY_BODY_PART_COST;  				}  			}  		} diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 0cf455db15..d09aaffd87 100755 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -250,8 +250,8 @@ public:  	// force all name tags to rebuild, useful when display names turned on/off  	static void		invalidateNameTags();  	void			addNameTagLine(const std::string& line, const LLColor4& color, S32 style, const LLFontGL* font); -	void 			idleUpdateRenderCost(); -	void			calculateUpdateRenderCost(); +	void 			idleUpdateRenderComplexity(); +	void			calculateUpdateRenderComplexity();  	void			updateVisualComplexity() { mVisualComplexityStale = TRUE; }  	S32				getVisualComplexity()			{ return mVisualComplexity;				};		// Numbers calculated here by rendering AV @@ -263,7 +263,7 @@ public:  	S32				getUpdatePeriod()				{ return mUpdatePeriod;			};  	const LLColor4 &  getMutedAVColor()				{ return mMutedAVColor;			}; - +	static void     updateImpostorRendering(U32 newMaxNonImpostorsValue);  	void 			idleUpdateBelowWater(); @@ -273,10 +273,12 @@ public:  public:  	static S32		sRenderName;  	static BOOL		sRenderGroupTitles; -	static U32		sMaxVisible; //(affected by control "RenderAvatarMaxVisible") +	static const U32 IMPOSTORS_OFF; /* Must equal the maximum allowed the RenderAvatarMaxNonImpostors +									 * slider in panel_preferences_graphics1.xml */ +	static U32		sMaxNonImpostors; //(affected by control "RenderAvatarMaxNonImpostors")  	static F32		sRenderDistance; //distance at which avatars will render.  	static BOOL		sShowAnimationDebug; // show animation debug info -	static BOOL		sUseImpostors; //use impostors for far away avatars +	static bool		sUseImpostors; //use impostors for far away avatars  	static BOOL		sShowFootPlane;	// show foot collision plane reported by server  	static BOOL		sShowCollisionVolumes;	// show skeletal collision volumes  	static BOOL		sVisibleInFirstPerson; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 03712c1065..6002b5a4eb 100755 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -569,7 +569,7 @@ void LLPipeline::init()  	connectRefreshCachedSettingsSafe("RenderAutoMaskAlphaDeferred");  	connectRefreshCachedSettingsSafe("RenderAutoMaskAlphaNonDeferred");  	connectRefreshCachedSettingsSafe("RenderUseFarClip"); -	connectRefreshCachedSettingsSafe("RenderAvatarMaxVisible"); +	connectRefreshCachedSettingsSafe("RenderAvatarMaxNonImpostors");  	connectRefreshCachedSettingsSafe("RenderDelayVBUpdate");  	connectRefreshCachedSettingsSafe("UseOcclusion");  	connectRefreshCachedSettingsSafe("VertexShaderEnable"); @@ -1081,7 +1081,8 @@ void LLPipeline::refreshCachedSettings()  	LLPipeline::sAutoMaskAlphaDeferred = gSavedSettings.getBOOL("RenderAutoMaskAlphaDeferred");  	LLPipeline::sAutoMaskAlphaNonDeferred = gSavedSettings.getBOOL("RenderAutoMaskAlphaNonDeferred");  	LLPipeline::sUseFarClip = gSavedSettings.getBOOL("RenderUseFarClip"); -	LLVOAvatar::sMaxVisible = (U32)gSavedSettings.getS32("RenderAvatarMaxVisible"); +	LLVOAvatar::sMaxNonImpostors = gSavedSettings.getU32("RenderAvatarMaxNonImpostors"); +	LLVOAvatar::updateImpostorRendering(LLVOAvatar::sMaxNonImpostors);  	LLPipeline::sDelayVBUpdate = gSavedSettings.getBOOL("RenderDelayVBUpdate");  	LLPipeline::sUseOcclusion =  @@ -11357,7 +11358,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)  	{  		LL_RECORD_BLOCK_TIME(FTM_IMPOSTOR_MARK_VISIBLE);  		markVisible(avatar->mDrawable, *viewer_camera); -		LLVOAvatar::sUseImpostors = FALSE; +		LLVOAvatar::sUseImpostors = false; // @TODO why?  		LLVOAvatar::attachment_map_t::iterator iter;  		for (iter = avatar->mAttachmentPoints.begin(); @@ -11594,7 +11595,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)  	avatar->setImpostorDim(tdim); -	LLVOAvatar::sUseImpostors = TRUE; +	LLVOAvatar::sUseImpostors = true; // @TODO why?  	sUseOcclusion = occlusion;  	sReflectionRender = FALSE;  	sImpostorRender = FALSE; 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 01a5e36ab0..9d8f2215aa 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 @@ -130,24 +130,24 @@    </text>    <slider -    control_name="MaximumARC" +    control_name="IndirectMaxComplexity"      follows="left|top"      height="16"      initial_value="101"      increment="1" -    label="Maximum ARC:" +    label="Maximum Complexity:"      label_width="185"      layout="topleft"      left="30"      min_val="1"      max_val="101" -    name="MaximumARC" +    name="IndirectMaxComplexity"      show_text="false"      top_delta="16"      width="300">      <slider.commit_callback -      function="Pref.UpdateSliderText" -      parameter="MaximumARCText" /> +      function="Pref.UpdateIndirectMaxComplexity" +      parameter="IndirectMaxComlexityText" />    </slider>    <text      type="string" @@ -158,13 +158,13 @@      top_delta="0"      left_delta="304"      text_readonly_color="LabelDisabledColor" -    name="MaximumARCText" +    name="IndirectMaxComplexityText"      width="65">         0    </text>    <slider -    control_name="RenderAvatarMaxVisible" +    control_name="IndirectMaxNonImpostors"      decimal_digits="0"      follows="left|top"      height="16" @@ -176,13 +176,13 @@      left="30"      min_val="1"      max_val="66" -    name="MaxNumberAvatarDrawn" +    name="IndirectMaxNonImpostors"      show_text="false"      top_delta="16"      width="300">      <slider.commit_callback -      function="Pref.UpdateSliderText" -      parameter="ImpostorsText" /> +      function="Pref.UpdateIndirectMaxNonImpostors" +      parameter="IndirectNonImpostorsText" />    </slider>    <text      type="string" @@ -193,7 +193,7 @@      top_delta="0"      left_delta="304"      text_readonly_color="LabelDisabledColor" -    name="ImpostorsText" +    name="IndirectMaxNonImpostorsText"      width="65">         0    </text>  | 
