summaryrefslogtreecommitdiff
path: root/indra/newview/lldrawpoolavatar.cpp
diff options
context:
space:
mode:
authorruslantproductengine <ruslantproductengine@lindenlab.com>2017-12-04 19:16:19 +0200
committerruslantproductengine <ruslantproductengine@lindenlab.com>2017-12-04 19:16:19 +0200
commit51c5f6319c5391131d47f3798d827f9a84a03d51 (patch)
treeae604eb4e556b6f765c161e4c597160dd252a945 /indra/newview/lldrawpoolavatar.cpp
parent325c076d094140fddf11cb291ca45c8a1426f442 (diff)
MAINT-6645 - Improvement - Agents that render as jelly dolls should have their attachments render at 0 LoD to prevent loading higher LoD complexity in memory thus deterring crashes.
Stability improve.
Diffstat (limited to 'indra/newview/lldrawpoolavatar.cpp')
-rw-r--r--indra/newview/lldrawpoolavatar.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 8128790eb6..ef69990170 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -1574,6 +1574,11 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(
LLPointer<LLVertexBuffer> buffer = face->getVertexBuffer();
LLDrawable* drawable = face->getDrawable();
+ if (drawable->getVOVolume() && drawable->getVOVolume()->isNoLOD())
+ {
+ return;
+ }
+
U32 data_mask = face->getRiggedVertexBufferDataMask();
if (!vol_face.mWeightsScrubbed)
@@ -1621,7 +1626,9 @@ void LLDrawPoolAvatar::updateRiggedFaceVertexBuffer(
return;
}
- if (sShaderLevel <= 0 && face->mLastSkinTime < avatar->getLastSkinTime())
+ if (!buffer.isNull() &&
+ sShaderLevel <= 0 &&
+ face->mLastSkinTime < avatar->getLastSkinTime())
{
//perform software vertex skinning for this face
LLStrider<LLVector3> position;
@@ -1914,7 +1921,7 @@ void LLDrawPoolAvatar::updateRiggedVertexBuffers(LLVOAvatar* avatar)
LLVOVolume* vobj = drawable->getVOVolume();
- if (!vobj)
+ if (!vobj || vobj->isNoLOD())
{
continue;
}