summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNyx Linden <nyx@lindenlab.com>2013-06-26 17:57:10 -0400
committerNyx Linden <nyx@lindenlab.com>2013-06-26 17:57:10 -0400
commitec00f7f14fbf16992b71ddd54e583ba07fdfd523 (patch)
tree50942f1b9f2c29f9a32377f70fcdc29c9b9508c9
parent01ffa6788793cdecff313b704422f0e814452489 (diff)
SH-4226 FIX wearing petite outfit gives appearance responder errors
Requesting appearance updates on updateGeometry for the avatar was spamming the back-end and causing the throttling mechanism to get hit. Removing that caused a re-introduction of SH-4109, so added a callback to link creation in the COF for attachments to request an appearance update. This should cause us to request an appearance update once per attachment attached, where before we were seeing up to 8 redundant requests.
-rwxr-xr-xindra/newview/llappearancemgr.cpp3
-rwxr-xr-xindra/newview/llvovolume.cpp15
2 files changed, 4 insertions, 14 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index cb32bf9c40..57a836c070 100755
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -3578,7 +3578,8 @@ void LLAppearanceMgr::registerAttachment(const LLUUID& item_id)
// we have to pass do_update = true to call LLAppearanceMgr::updateAppearanceFromCOF.
// it will trigger gAgentWariables.notifyLoadingFinished()
// But it is not acceptable solution. See EXT-7777
- LLAppearanceMgr::addCOFItemLink(item_id); // Add COF link for item.
+ LLPointer<LLInventoryCallback> cb = new LLUpdateAppearanceOnDestroy();
+ LLAppearanceMgr::addCOFItemLink(item_id, cb); // Add COF link for item.
}
else
{
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index b7f7a11a15..8730ef66bb 100755
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -76,7 +76,6 @@
#include "llviewershadermgr.h"
#include "llvoavatar.h"
#include "llvocache.h"
-#include "llappearancemgr.h"
const S32 MIN_QUIET_FRAMES_COALESCE = 30;
const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
@@ -4240,8 +4239,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
{
LLFastTimer t(FTM_REBUILD_VOLUME_FACE_LIST);
- bool requiredAppearanceUpdate = false;
-
//get all the faces into a list
for (LLSpatialGroup::element_iter drawable_iter = group->getDataBegin(); drawable_iter != group->getDataEnd(); ++drawable_iter)
{
@@ -4340,7 +4337,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
const int jointCnt = pSkinData->mJointNames.size();
const F32 pelvisZOffset = pSkinData->mPelvisOffset;
bool fullRig = (jointCnt>=20) ? true : false;
- requiredAppearanceUpdate = true;
if ( fullRig )
{
for ( int i=0; i<jointCnt; ++i )
@@ -4365,14 +4361,12 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
pelvisGotSet = true;
}
}
- }
+ }
}
}
}
}
- }
-
-
+ }
//If we've set the pelvis to a new position we need to also rebuild some information that the
//viewer does at launch (e.g. body size etc.)
if ( pelvisGotSet )
@@ -4612,11 +4606,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
drawablep->clearState(LLDrawable::RIGGED);
}
}
-
- if ( requiredAppearanceUpdate && gAgent.getRegion() && gAgent.getRegion()->getCentralBakeVersion() )
- {
- LLAppearanceMgr::instance().requestServerAppearanceUpdate();
- }
}
group->mBufferUsage = useage;