summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2023-03-13 11:16:23 -0500
committerDave Parks <davep@lindenlab.com>2023-03-13 11:16:23 -0500
commit8d263197f0649e3b49044d6f7c12277c2361bdba (patch)
tree5daa7783d32e2df9c5e949d37892cf7e4cca265d /indra
parent88d3cc680dd10fcb0397b366e73899c6e414ad5c (diff)
SL-19371 Fix for occlusion culling getting stuck after teleport.
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llagent.cpp2
-rw-r--r--indra/newview/llspatialpartition.cpp11
-rw-r--r--indra/newview/llspatialpartition.h2
-rw-r--r--indra/newview/pipeline.cpp2
4 files changed, 3 insertions, 14 deletions
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 6113c30a84..a68dba98bb 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -3959,8 +3959,6 @@ bool LLAgent::teleportCore(bool is_local)
gTeleportDisplay = TRUE;
LL_INFOS("Teleport") << "Non-local, setting teleport state to TELEPORT_START" << LL_ENDL;
gAgent.setTeleportState( LLAgent::TELEPORT_START );
-
- LLSpatialPartition::sTeleportRequested = TRUE;
}
make_ui_sound("UISndTeleportOut");
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index 92fccfcfd6..fc9b3093e8 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -64,8 +64,6 @@ bool LLSpatialGroup::sNoDelete = false;
static F32 sLastMaxTexPriority = 1.f;
static F32 sCurMaxTexPriority = 1.f;
-bool LLSpatialPartition::sTeleportRequested = false;
-
//static counter for frame to switch LOD on
void sg_assert(BOOL expr)
@@ -1295,8 +1293,6 @@ void drawBoxOutline(const LLVector4a& pos, const LLVector4a& size)
class LLOctreeDirty : public OctreeTraveler
{
public:
- LLOctreeDirty(bool no_rebuild) : mNoRebuild(no_rebuild){}
-
virtual void visit(const OctreeNode* state)
{
LLSpatialGroup* group = (LLSpatialGroup*) state->getListener(0);
@@ -1309,7 +1305,7 @@ public:
{
continue;
}
- if (!mNoRebuild && drawable->getVObj().notNull() && !group->getSpatialPartition()->mRenderByGroup)
+ if (drawable->getVObj().notNull() && !group->getSpatialPartition()->mRenderByGroup)
{
gPipeline.markRebuild(drawable, LLDrawable::REBUILD_ALL, TRUE);
}
@@ -1321,9 +1317,6 @@ public:
traverse(bridge->mOctree);
}
}
-
-private:
- BOOL mNoRebuild;
};
void LLSpatialPartition::restoreGL()
@@ -1332,7 +1325,7 @@ void LLSpatialPartition::restoreGL()
void LLSpatialPartition::resetVertexBuffers()
{
- LLOctreeDirty dirty(sTeleportRequested);
+ LLOctreeDirty dirty;
dirty.traverse(mOctree);
}
diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h
index 9b2cb0d44c..053ce9e60b 100644
--- a/indra/newview/llspatialpartition.h
+++ b/indra/newview/llspatialpartition.h
@@ -433,8 +433,6 @@ public:
U32 mVertexDataMask;
F32 mSlopRatio; //percentage distance must change before drawables receive LOD update (default is 0.25);
bool mDepthMask; //if TRUE, objects in this partition will be written to depth during alpha rendering
-
- static bool sTeleportRequested; //started to issue a teleport request
};
// class for creating bridges between spatial partitions
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index e6ad42c23b..18b0192346 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -2424,7 +2424,7 @@ void LLPipeline::doOcclusion(LLCamera& camera)
gGL.setColorMask(true, true);
}
- if (LLPipeline::sUseOcclusion > 1 && !LLSpatialPartition::sTeleportRequested &&
+ if (LLPipeline::sUseOcclusion > 1 &&
(sCull->hasOcclusionGroups() || LLVOCachePartition::sNeedsOcclusionCheck))
{
LLVertexBuffer::unbind();