diff --git a/indra/newview/llcontrolavatar.cpp b/indra/newview/llcontrolavatar.cpp
index 1b5b2d48bd..c64d298f0c 100644
--- a/indra/newview/llcontrolavatar.cpp
+++ b/indra/newview/llcontrolavatar.cpp
@@ -674,3 +674,14 @@ void LLControlAvatar::onRegionChanged()
cav->mRegionChanged = true;
}
}
+
+// FIRE-29012: Standalone animesh avatars get affected by complexity limit
+bool LLControlAvatar::isTooComplex() const
+{
+ if (mRootVolp && !mRootVolp->isAttachment())
+ {
+ return false;
+ }
+ return LLVOAvatar::isTooComplex();
+}
+//
diff --git a/indra/newview/llcontrolavatar.h b/indra/newview/llcontrolavatar.h
index 288d07cd48..4fd0075be7 100644
--- a/indra/newview/llcontrolavatar.h
+++ b/indra/newview/llcontrolavatar.h
@@ -76,6 +76,9 @@ public:
virtual bool shouldRenderRigged() const;
virtual BOOL isImpostor();
+
+ bool isTooComplex() const; // FIRE-29012: Standalone animesh avatars get affected by complexity limit
+
bool mPlaying;
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index cfe31c809e..18f818c9a3 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -8789,10 +8789,7 @@ bool LLVOAvatar::isTooComplex() const
bool render_friend = (LLAvatarTracker::instance().isBuddy(getID()) && alwaysRenderFriends);
//
- // FIRE-29012: Standalone animesh avatars get affected by complexity limit
- //if (isSelf() || render_friend || mVisuallyMuteSetting == AV_ALWAYS_RENDER)
- if (isSelf() || render_friend || mVisuallyMuteSetting == AV_ALWAYS_RENDER || (isControlAvatar() && ((LLControlAvatar*)this)->mRootVolp != NULL && !((LLControlAvatar*)this)->mRootVolp->isAttachment()))
- //
+ if (isSelf() || render_friend || mVisuallyMuteSetting == AV_ALWAYS_RENDER)
{
too_complex = false;
}
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 48f39ab363..842c6923e2 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -358,7 +358,7 @@ public:
//--------------------------------------------------------------------
public:
BOOL isFullyLoaded() const;
- bool isTooComplex() const;
+ virtual bool isTooComplex() const; // FIRE-29012: Standalone animesh avatars get affected by complexity limit; changed to virtual
bool visualParamWeightsAreDefault();
virtual bool getIsCloud() const;
BOOL isFullyTextured() const;