diff options
author | Nyx Linden <nyx@lindenlab.com> | 2013-06-26 17:57:10 -0400 |
---|---|---|
committer | Nyx Linden <nyx@lindenlab.com> | 2013-06-26 17:57:10 -0400 |
commit | ec00f7f14fbf16992b71ddd54e583ba07fdfd523 (patch) | |
tree | 50942f1b9f2c29f9a32377f70fcdc29c9b9508c9 | |
parent | 01ffa6788793cdecff313b704422f0e814452489 (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-x | indra/newview/llappearancemgr.cpp | 3 | ||||
-rwxr-xr-x | indra/newview/llvovolume.cpp | 15 |
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; |