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.
master
Nyx Linden 2013-06-26 17:57:10 -04:00
parent 01ffa67887
commit ec00f7f14f
2 changed files with 4 additions and 14 deletions

View File

@ -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
{

View File

@ -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;