diff options
| author | Dave Parks <davep@lindenlab.com> | 2023-03-24 10:31:32 -0500 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2023-03-24 10:31:32 -0500 | 
| commit | df9d2b6e9613d15d39e3e870fc09686e41b6c37f (patch) | |
| tree | 0d56d9c03da45e6e4e59d1f694afbb0c1009da15 /indra/newview | |
| parent | cf3a0c77f1855aa1a33ff39f86e846e7fb9031d1 (diff) | |
SL-19321 Optimization pass -- reduce occlusion culling frame stalls, reduce shadow draw distance in probes.
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
| -rw-r--r-- | indra/newview/llvieweroctree.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 2 | 
3 files changed, 15 insertions, 2 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 6d7e93b364..5ade88e32b 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -14261,6 +14261,17 @@        <key>Value</key>        <integer>1</integer>      </map> +  <key>RenderOcclusionTimeout</key> +  <map> +    <key>Comment</key> +    <string>Maximum number of frames to wait on an occlusion query before forcibly reading it back</string> +    <key>Persist</key> +    <integer>1</integer> +    <key>Type</key> +    <string>S32</string> +    <key>Value</key> +    <integer>8</integer> +  </map>    <key>UseObjectCacheOcclusion</key>    <map>      <key>Comment</key> diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index d1d23cfb8e..a2d8d30fb2 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -1131,7 +1131,9 @@ void LLOcclusionCullingGroup::checkOcclusion()                  mOcclusionCheckCount[LLViewerCamera::sCurCameraID]++;              } -            if (available || mOcclusionCheckCount[LLViewerCamera::sCurCameraID] > 4) +            static LLCachedControl<S32> occlusion_timeout(gSavedSettings, "RenderOcclusionTimeout", 4); + +            if (available || mOcclusionCheckCount[LLViewerCamera::sCurCameraID] > occlusion_timeout)              {                     mOcclusionCheckCount[LLViewerCamera::sCurCameraID] = 0;                  GLuint query_result;    // Will be # samples drawn, or a boolean depending on mHasOcclusionQuery2 (both are type GLuint) diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 18b0192346..f059c87c91 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -9419,7 +9419,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)  	}  	else  	{ -        for (S32 j = 0; j < 4; j++) +        for (S32 j = 0; j < (gCubeSnapshot ? 3 : 4); j++)  		{  			if (!hasRenderDebugMask(RENDER_DEBUG_SHADOW_FRUSTA) && !gCubeSnapshot)  			{ | 
