summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llvoavatar.cpp12
-rw-r--r--indra/newview/llvovolume.cpp4
2 files changed, 16 insertions, 0 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index ac5d1b335c..fdce66e2c6 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -9165,6 +9165,12 @@ void LLVOAvatar::updateImpostorRendering(U32 newMaxNonImpostorsValue)
void LLVOAvatar::idleUpdateRenderComplexity()
{
+ if (isControlAvatar())
+ {
+ // ARC for animated object attachments is accounted with the avatar they're attached to.
+ return;
+ }
+
// Render Complexity
calculateUpdateRenderComplexity(); // Update mVisualComplexity if needed
@@ -9319,7 +9325,13 @@ void LLVOAvatar::calculateUpdateRenderComplexity()
F32 attachment_volume_cost = 0;
F32 attachment_texture_cost = 0;
F32 attachment_children_cost = 0;
+ // AXON placeholder value, will revisit in testing.
+ const F32 animated_object_attachment_surcharge = 20000;
+ if (attached_object->isAnimatedObject())
+ {
+ attachment_volume_cost += animated_object_attachment_surcharge;
+ }
attachment_volume_cost += volume->getRenderCost(textures);
const_child_list_t children = volume->getChildren();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 07032ca0ae..e660a4c4a6 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -3340,6 +3340,10 @@ void LLVOVolume::setExtendedMeshFlags(U32 flags)
param_block->setFlags(flags);
}
parameterChanged(LLNetworkData::PARAMS_EXTENDED_MESH, true);
+ if (isAttachment() && getAvatarAncestor())
+ {
+ getAvatarAncestor()->updateVisualComplexity();
+ }
}
}