diff options
author | Dave Houlton <euclid@lindenlab.com> | 2021-12-08 13:38:09 -0700 |
---|---|---|
committer | Dave Houlton <euclid@lindenlab.com> | 2021-12-09 10:50:50 -0700 |
commit | d718f25f7d40f571dd372da05fb228561cae2e13 (patch) | |
tree | 35db7a132a3bf1f6232ec83a5c48325fa36b943a | |
parent | 9e38e5a187574279b46dc76d9d0fb2c7b2f816f6 (diff) |
SL-16461 disable occlusion-based reflection update
-rw-r--r-- | indra/newview/lldrawpoolwater.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llvieweroctree.cpp | 6 |
2 files changed, 7 insertions, 4 deletions
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp index 590385472b..62706feae3 100644 --- a/indra/newview/lldrawpoolwater.cpp +++ b/indra/newview/lldrawpoolwater.cpp @@ -679,9 +679,8 @@ void LLDrawPoolWater::renderWater() { face->renderIndexed(); - // If not occlusion culling, record non-void water being drawn - // (If occlusion is enabled, these are set within LLOcclusionCullingGroup::checkOcclusion() ) - if (!edge && !LLPipeline::sUseOcclusion) + // Note non-void water being drawn, updates required + if (!edge) // SL-16461 remove !LLPipeline::sUseOcclusion check { sNeedsReflectionUpdate = TRUE; sNeedsDistortionUpdate = TRUE; diff --git a/indra/newview/llvieweroctree.cpp b/indra/newview/llvieweroctree.cpp index b7d0e06116..8d6f4d2729 100644 --- a/indra/newview/llvieweroctree.cpp +++ b/indra/newview/llvieweroctree.cpp @@ -1140,6 +1140,10 @@ void LLOcclusionCullingGroup::checkOcclusion() #if LL_TRACK_PENDING_OCCLUSION_QUERIES sPendingQueries.erase(mOcclusionQuery[LLViewerCamera::sCurCameraID]); #endif + +#if 0 // (12/2021) occasional false-negative occlusion tests produce water reflection errors, SL-16461 + // If/when water occlusion queries become 100% reliable, re-enable this optimization + if (LLPipeline::RENDER_TYPE_WATER == mSpatialPartition->mDrawableType) { // Note any unoccluded water, for deciding on reflection/distortion passes @@ -1150,7 +1154,7 @@ void LLOcclusionCullingGroup::checkOcclusion() LLDrawPoolWater::sNeedsDistortionUpdate = TRUE; } } - +#endif if (query_result > 0) { clearOcclusionState(LLOcclusionCullingGroup::OCCLUDED, LLOcclusionCullingGroup::STATE_MODE_DIFF); |