diff options
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/llvoavatar.cpp | 12 | ||||
-rw-r--r-- | indra/newview/llvovolume.cpp | 4 |
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(); + } } } |