From 93995ada0561e75efdf3f532cf638fbcb1d2ee69 Mon Sep 17 00:00:00 2001 From: William Todd Stinson Date: Mon, 12 Nov 2012 15:27:56 -0800 Subject: MAINT-1894: FIX This *should* fix a crash in the LLVolume::resizePath() method. The callstacks indicated that the std library was throwing a length exception on the std::vector::resize() call. Most likely cause was that the recent changes for flexi-prims were causing the mRenderRes to become negative. And thus, the 1< Date: Mon, 12 Nov 2012 19:35:34 -0800 Subject: MAINT-1890: A hacky fix for flexi-prim updates after teleport by ignoring the sUpdateDelay value and simply updating all flexi-prims. This change most likely reduces frame rate. --- indra/newview/llflexibleobject.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index 43be28ce71..f04356dc60 100644 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -96,6 +96,7 @@ LLVolumeImplFlexible::~LLVolumeImplFlexible() //static void LLVolumeImplFlexible::updateClass() { +#ifdef XXX_STINSON_HACK_FIX std::vector::iterator delay_iter = sUpdateDelay.begin(); for (std::vector::iterator iter = sInstanceList.begin(); @@ -109,6 +110,14 @@ void LLVolumeImplFlexible::updateClass() } ++delay_iter; } +#else // XXX_STINSON_HACK_FIX + for (std::vector::iterator iter = sInstanceList.begin(); + iter != sInstanceList.end(); + ++iter) + { + (*iter)->doIdleUpdate(); + } +#endif // XXX_STINSON_HACK_FIX } LLVector3 LLVolumeImplFlexible::getFramePosition() const -- cgit v1.2.3 From 3d21b2302b322ee75bb7082314f063fe4950a2d3 Mon Sep 17 00:00:00 2001 From: William Todd Stinson Date: Tue, 13 Nov 2012 15:16:26 -0800 Subject: MAINT-1891: FIX Updating the LLPipeline::clearRebuildGroups() to preserve HUD groups. clearRebuildGroups() is called during the teleport process. In the previous state, HUD objects were being incorrectly removed from the rebuild groups during the teleport process. This change will preserve HUD groups and should resolve this issue. --- indra/newview/pipeline.cpp | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 678898797f..d9f4aa009b 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2577,26 +2577,59 @@ static LLFastTimer::DeclareTimer FTM_REBUILD_PRIORITY_GROUPS("Rebuild Priority G void LLPipeline::clearRebuildGroups() { + LLSpatialGroup::sg_vector_t hudGroups; + mGroupQ1Locked = true; // Iterate through all drawables on the priority build queue, for (LLSpatialGroup::sg_vector_t::iterator iter = mGroupQ1.begin(); iter != mGroupQ1.end(); ++iter) { LLSpatialGroup* group = *iter; - group->clearState(LLSpatialGroup::IN_BUILD_Q1); + + // If the group contains HUD objects, save the group + if (group->isHUDGroup()) + { + hudGroups.push_back(group); + } + // Else, no HUD objects so clear the build state + else + { + group->clearState(LLSpatialGroup::IN_BUILD_Q1); + } } + + // Clear the group mGroupQ1.clear(); + + // Copy the saved HUD groups back in + mGroupQ1.assign(hudGroups.begin(), hudGroups.end()); mGroupQ1Locked = false; + // Clear the HUD groups + hudGroups.clear(); + mGroupQ2Locked = true; for (LLSpatialGroup::sg_vector_t::iterator iter = mGroupQ2.begin(); iter != mGroupQ2.end(); ++iter) { LLSpatialGroup* group = *iter; - group->clearState(LLSpatialGroup::IN_BUILD_Q2); - } + // If the group contains HUD objects, save the group + if (group->isHUDGroup()) + { + hudGroups.push_back(group); + } + // Else, no HUD objects so clear the build state + else + { + group->clearState(LLSpatialGroup::IN_BUILD_Q2); + } + } + // Clear the group mGroupQ2.clear(); + + // Copy the saved HUD groups back in + mGroupQ2.assign(hudGroups.begin(), hudGroups.end()); mGroupQ2Locked = false; } -- cgit v1.2.3 From 951b4c3efbdb19ea2af6f26f420bca43edf75273 Mon Sep 17 00:00:00 2001 From: William Todd Stinson Date: Tue, 13 Nov 2012 15:23:15 -0800 Subject: MAINT-1890: Adding a more descriptive comment to this hack fix for future reference. --- indra/newview/llflexibleobject.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp index f04356dc60..f5bf900d0d 100644 --- a/indra/newview/llflexibleobject.cpp +++ b/indra/newview/llflexibleobject.cpp @@ -96,7 +96,18 @@ LLVolumeImplFlexible::~LLVolumeImplFlexible() //static void LLVolumeImplFlexible::updateClass() { -#ifdef XXX_STINSON_HACK_FIX + // XXX stinson 11/13/2012 : This hack removes the optimization for limiting the number of flexi-prims + // updated. With the optimization, flexi-prims attached to the users avatar were not being + // animated correctly immediately following teleport. With the optimization removed, the bug went away. +#define XXX_STINSON_MAINT_1890_HACK_FIX 1 +#if XXX_STINSON_MAINT_1890_HACK_FIX + for (std::vector::iterator iter = sInstanceList.begin(); + iter != sInstanceList.end(); + ++iter) + { + (*iter)->doIdleUpdate(); + } +#else // XXX_STINSON_MAINT_1890_HACK_FIX std::vector::iterator delay_iter = sUpdateDelay.begin(); for (std::vector::iterator iter = sInstanceList.begin(); @@ -110,14 +121,7 @@ void LLVolumeImplFlexible::updateClass() } ++delay_iter; } -#else // XXX_STINSON_HACK_FIX - for (std::vector::iterator iter = sInstanceList.begin(); - iter != sInstanceList.end(); - ++iter) - { - (*iter)->doIdleUpdate(); - } -#endif // XXX_STINSON_HACK_FIX +#endif // XXX_STINSON_MAINT_1890_HACK_FIX } LLVector3 LLVolumeImplFlexible::getFramePosition() const -- cgit v1.2.3 From dec9979af082254fe96fe2db4d8352ec484527f7 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Tue, 13 Nov 2012 21:34:01 -0500 Subject: tag merge of DRTVWR-243 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 2389922e53..00b56f0804 100755 --- a/.hgtags +++ b/.hgtags @@ -350,3 +350,4 @@ b61afe175b829c149d369524a4e974dfda99facf DRTVWR-219 e664473c16df1d82ffaff382e7b3e023da202d52 3.4.2-beta2 0891d7a773a31397dcad48be3fa66531d567a821 DRTVWR-242 710785535362b3cb801b6a3dc4703be3373bd0cd 3.4.2-beta3 +e9a5886052433d5db9e504ffaca10890f9932979 DRTVWR-243 -- cgit v1.2.3 From a7a61adb29f2842a98dda44ad9062e262ab20a98 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Wed, 14 Nov 2012 06:34:26 -0500 Subject: Added tag 3.4.2-beta4 for changeset 73b84b9864dc --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 00b56f0804..347f95e5b9 100755 --- a/.hgtags +++ b/.hgtags @@ -351,3 +351,4 @@ e664473c16df1d82ffaff382e7b3e023da202d52 3.4.2-beta2 0891d7a773a31397dcad48be3fa66531d567a821 DRTVWR-242 710785535362b3cb801b6a3dc4703be3373bd0cd 3.4.2-beta3 e9a5886052433d5db9e504ffaca10890f9932979 DRTVWR-243 +73b84b9864dc650fe7c8fc9f52361450f0849004 3.4.2-beta4 -- cgit v1.2.3