summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Houlton <euclid@lindenlab.com>2021-12-08 13:38:09 -0700
committerDave Houlton <euclid@lindenlab.com>2021-12-09 10:50:50 -0700
commitd718f25f7d40f571dd372da05fb228561cae2e13 (patch)
tree35db7a132a3bf1f6232ec83a5c48325fa36b943a
parent9e38e5a187574279b46dc76d9d0fb2c7b2f816f6 (diff)
SL-16461 disable occlusion-based reflection update
-rw-r--r--indra/newview/lldrawpoolwater.cpp5
-rw-r--r--indra/newview/llvieweroctree.cpp6
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);