Misc changes via v3 merge. Nothing big.
This commit is contained in:
@@ -1861,8 +1861,6 @@ void LLVOAvatar::onShift(const LLVector4a& shift_vector)
|
|||||||
const LLVector3& shift = reinterpret_cast<const LLVector3&>(shift_vector);
|
const LLVector3& shift = reinterpret_cast<const LLVector3&>(shift_vector);
|
||||||
mLastAnimExtents[0] += shift;
|
mLastAnimExtents[0] += shift;
|
||||||
mLastAnimExtents[1] += shift;
|
mLastAnimExtents[1] += shift;
|
||||||
mNeedsImpostorUpdate = TRUE;
|
|
||||||
mNeedsAnimUpdate = TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVOAvatar::updateSpatialExtents(LLVector4a& newMin, LLVector4a &newMax)
|
void LLVOAvatar::updateSpatialExtents(LLVector4a& newMin, LLVector4a &newMax)
|
||||||
@@ -5243,7 +5241,20 @@ void LLVOAvatar::updateTextures()
|
|||||||
LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType((ETextureIndex)texture_index);
|
LLWearableType::EType wearable_type = LLVOAvatarDictionary::getTEWearableType((ETextureIndex)texture_index);
|
||||||
U32 num_wearables = gAgentWearables.getWearableCount(wearable_type);
|
U32 num_wearables = gAgentWearables.getWearableCount(wearable_type);
|
||||||
const LLTextureEntry *te = getTE(texture_index);
|
const LLTextureEntry *te = getTE(texture_index);
|
||||||
const F32 texel_area_ratio = fabs(te->mScaleS * te->mScaleT);
|
|
||||||
|
// getTE can return 0.
|
||||||
|
// Not sure yet why it does, but of course it crashes when te->mScale? gets used.
|
||||||
|
// Put safeguard in place so this corner case get better handling and does not result in a crash.
|
||||||
|
F32 texel_area_ratio = 1.0f;
|
||||||
|
if( te )
|
||||||
|
{
|
||||||
|
texel_area_ratio = fabs(te->mScaleS * te->mScaleT);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
llwarns << "getTE( " << texture_index << " ) returned 0" <<llendl;
|
||||||
|
}
|
||||||
|
|
||||||
LLViewerFetchedTexture *imagep = NULL;
|
LLViewerFetchedTexture *imagep = NULL;
|
||||||
for (U32 wearable_index = 0; wearable_index < num_wearables; wearable_index++)
|
for (U32 wearable_index = 0; wearable_index < num_wearables; wearable_index++)
|
||||||
{
|
{
|
||||||
@@ -9744,17 +9755,14 @@ BOOL LLVOAvatar::isTextureDefined(LLVOAvatarDefines::ETextureIndex te, U32 index
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
LLViewerTexture* img = getImage(te, index);
|
if( !getImage( te, index ) )
|
||||||
if(img)
|
|
||||||
{
|
{
|
||||||
return (img->getID() != IMG_DEFAULT_AVATAR &&
|
llwarns << "getImage( " << te << ", " << index << " ) returned 0" << llendl;
|
||||||
img->getID() != IMG_DEFAULT);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
llwarns << "Image doesn't exist" << llendl;
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return (getImage(te, index)->getID() != IMG_DEFAULT_AVATAR &&
|
||||||
|
getImage(te, index)->getID() != IMG_DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
//virtual
|
//virtual
|
||||||
|
|||||||
@@ -2308,11 +2308,25 @@ void LLVOAvatarSelf::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )
|
|||||||
if (isAllLocalTextureDataFinal())
|
if (isAllLocalTextureDataFinal())
|
||||||
{
|
{
|
||||||
LLNotificationsUtil::add("AvatarRezSelfBakedDoneNotification",args);
|
LLNotificationsUtil::add("AvatarRezSelfBakedDoneNotification",args);
|
||||||
|
LL_DEBUGS("Avatar") << "REZTIME: [ " << (U32)mDebugExistenceTimer.getElapsedTimeF32()
|
||||||
|
<< "sec ]"
|
||||||
|
<< avString()
|
||||||
|
<< "RuthTimer " << (U32)mRuthDebugTimer.getElapsedTimeF32()
|
||||||
|
<< " SelfLoadTimer " << (U32)mDebugSelfLoadTimer.getElapsedTimeF32()
|
||||||
|
<< " Notification " << "AvatarRezSelfBakedDoneNotification"
|
||||||
|
<< llendl;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
args["STATUS"] = debugDumpAllLocalTextureDataInfo();
|
args["STATUS"] = debugDumpAllLocalTextureDataInfo();
|
||||||
LLNotificationsUtil::add("AvatarRezSelfBakedUpdateNotification",args);
|
LLNotificationsUtil::add("AvatarRezSelfBakedUpdateNotification",args);
|
||||||
|
LL_DEBUGS("Avatar") << "REZTIME: [ " << (U32)mDebugExistenceTimer.getElapsedTimeF32()
|
||||||
|
<< "sec ]"
|
||||||
|
<< avString()
|
||||||
|
<< "RuthTimer " << (U32)mRuthDebugTimer.getElapsedTimeF32()
|
||||||
|
<< " SelfLoadTimer " << (U32)mDebugSelfLoadTimer.getElapsedTimeF32()
|
||||||
|
<< " Notification " << "AvatarRezSelfBakedUpdateNotification"
|
||||||
|
<< llendl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2320,6 +2334,7 @@ void LLVOAvatarSelf::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: This is not called consistently. Something may be broken.
|
||||||
void LLVOAvatarSelf::outputRezDiagnostics() const
|
void LLVOAvatarSelf::outputRezDiagnostics() const
|
||||||
{
|
{
|
||||||
if(!gSavedSettings.getBOOL("DebugAvatarLocalTexLoadedTime"))
|
if(!gSavedSettings.getBOOL("DebugAvatarLocalTexLoadedTime"))
|
||||||
@@ -2328,11 +2343,11 @@ void LLVOAvatarSelf::outputRezDiagnostics() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
const F32 final_time = mDebugSelfLoadTimer.getElapsedTimeF32();
|
const F32 final_time = mDebugSelfLoadTimer.getElapsedTimeF32();
|
||||||
llinfos << "REZTIME: Myself rez stats:" << llendl;
|
LL_DEBUGS("Avatar") << "REZTIME: Myself rez stats:" << llendl;
|
||||||
llinfos << "\t Time from avatar creation to load wearables: " << (S32)mDebugTimeWearablesLoaded << llendl;
|
LL_DEBUGS("Avatar") << "\t Time from avatar creation to load wearables: " << (S32)mDebugTimeWearablesLoaded << llendl;
|
||||||
llinfos << "\t Time from avatar creation to de-cloud: " << (S32)mDebugTimeAvatarVisible << llendl;
|
LL_DEBUGS("Avatar") << "\t Time from avatar creation to de-cloud: " << (S32)mDebugTimeAvatarVisible << llendl;
|
||||||
llinfos << "\t Time from avatar creation to de-cloud for others: " << (S32)final_time << llendl;
|
LL_DEBUGS("Avatar") << "\t Time from avatar creation to de-cloud for others: " << (S32)final_time << llendl;
|
||||||
llinfos << "\t Load time for each texture: " << llendl;
|
LL_DEBUGS("Avatar") << "\t Load time for each texture: " << llendl;
|
||||||
for (U32 i = 0; i < LLVOAvatarDefines::TEX_NUM_INDICES; ++i)
|
for (U32 i = 0; i < LLVOAvatarDefines::TEX_NUM_INDICES; ++i)
|
||||||
{
|
{
|
||||||
std::stringstream out;
|
std::stringstream out;
|
||||||
@@ -2356,12 +2371,14 @@ void LLVOAvatarSelf::outputRezDiagnostics() const
|
|||||||
|
|
||||||
// Don't print out non-existent textures.
|
// Don't print out non-existent textures.
|
||||||
if (j != 0)
|
if (j != 0)
|
||||||
llinfos << out.str() << llendl;
|
{
|
||||||
|
LL_DEBUGS("Avatar") << out.str() << LL_ENDL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
llinfos << "\t Time points for each upload (start / finish)" << llendl;
|
LL_DEBUGS("Avatar") << "\t Time points for each upload (start / finish)" << llendl;
|
||||||
for (U32 i = 0; i < LLVOAvatarDefines::BAKED_NUM_INDICES; ++i)
|
for (U32 i = 0; i < LLVOAvatarDefines::BAKED_NUM_INDICES; ++i)
|
||||||
{
|
{
|
||||||
llinfos << "\t\t (" << i << ") \t" << (S32)mDebugBakedTextureTimes[i][0] << " / " << (S32)mDebugBakedTextureTimes[i][1] << llendl;
|
LL_DEBUGS("Avatar") << "\t\t (" << i << ") \t" << (S32)mDebugBakedTextureTimes[i][0] << " / " << (S32)mDebugBakedTextureTimes[i][1] << llendl;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (LLVOAvatarDefines::LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDefines::LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
|
for (LLVOAvatarDefines::LLVOAvatarDictionary::BakedTextures::const_iterator baked_iter = LLVOAvatarDefines::LLVOAvatarDictionary::getInstance()->getBakedTextures().begin();
|
||||||
@@ -2373,15 +2390,16 @@ void LLVOAvatarSelf::outputRezDiagnostics() const
|
|||||||
if (!layerset) continue;
|
if (!layerset) continue;
|
||||||
const LLTexLayerSetBuffer *layerset_buffer = layerset->getComposite();
|
const LLTexLayerSetBuffer *layerset_buffer = layerset->getComposite();
|
||||||
if (!layerset_buffer) continue;
|
if (!layerset_buffer) continue;
|
||||||
llinfos << layerset_buffer->dumpTextureInfo() << llendl;
|
LL_DEBUGS("Avatar") << layerset_buffer->dumpTextureInfo() << llendl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVOAvatarSelf::outputRezTiming(const std::string& msg) const
|
void LLVOAvatarSelf::outputRezTiming(const std::string& msg) const
|
||||||
{
|
{
|
||||||
LL_DEBUGS("Avatar Rez")
|
LL_INFOS("Avatar")
|
||||||
|
<< avString()
|
||||||
<< llformat("%s. Time from avatar creation: %.2f", msg.c_str(), mDebugSelfLoadTimer.getElapsedTimeF32())
|
<< llformat("%s. Time from avatar creation: %.2f", msg.c_str(), mDebugSelfLoadTimer.getElapsedTimeF32())
|
||||||
<< llendl;
|
<< LL_ENDL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLVOAvatarSelf::reportAvatarRezTime() const
|
void LLVOAvatarSelf::reportAvatarRezTime() const
|
||||||
|
|||||||
@@ -3063,6 +3063,7 @@ void LLRiggedVolume::update(const LLMeshSkinInfo* skin, LLVOAvatar* avatar, cons
|
|||||||
|
|
||||||
LLVector4a* pos = dst_face.mPositions;
|
LLVector4a* pos = dst_face.mPositions;
|
||||||
|
|
||||||
|
if( pos && dst_face.mExtents )
|
||||||
{
|
{
|
||||||
LLFastTimer t(FTM_SKIN_RIGGED);
|
LLFastTimer t(FTM_SKIN_RIGGED);
|
||||||
|
|
||||||
|
|||||||
@@ -1800,6 +1800,7 @@ void LLPipeline::grabReferences(LLCullResult& result)
|
|||||||
void LLPipeline::clearReferences()
|
void LLPipeline::clearReferences()
|
||||||
{
|
{
|
||||||
sCull = NULL;
|
sCull = NULL;
|
||||||
|
mGroupSaveQ1.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void check_references(LLSpatialGroup* group, LLDrawable* drawable)
|
void check_references(LLSpatialGroup* group, LLDrawable* drawable)
|
||||||
@@ -2443,6 +2444,7 @@ void LLPipeline::rebuildPriorityGroups()
|
|||||||
group->clearState(LLSpatialGroup::IN_BUILD_Q1);
|
group->clearState(LLSpatialGroup::IN_BUILD_Q1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mGroupSaveQ1 = mGroupQ1;
|
||||||
mGroupQ1.clear();
|
mGroupQ1.clear();
|
||||||
mGroupQ1Locked = false;
|
mGroupQ1Locked = false;
|
||||||
|
|
||||||
|
|||||||
@@ -658,6 +658,8 @@ protected:
|
|||||||
LLSpatialGroup::sg_vector_t mGroupQ1; //priority
|
LLSpatialGroup::sg_vector_t mGroupQ1; //priority
|
||||||
LLSpatialGroup::sg_vector_t mGroupQ2; // non-priority
|
LLSpatialGroup::sg_vector_t mGroupQ2; // non-priority
|
||||||
|
|
||||||
|
LLSpatialGroup::sg_vector_t mGroupSaveQ1; // a place to save mGroupQ1 until it is safe to unref
|
||||||
|
|
||||||
LLSpatialGroup::sg_vector_t mMeshDirtyGroup; //groups that need rebuildMesh called
|
LLSpatialGroup::sg_vector_t mMeshDirtyGroup; //groups that need rebuildMesh called
|
||||||
U32 mMeshDirtyQueryObject;
|
U32 mMeshDirtyQueryObject;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user