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(+) (limited to 'indra/newview/llflexibleobject.cpp') 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 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(-) (limited to 'indra/newview/llflexibleobject.cpp') 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