aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/newview
diff options
context:
space:
mode:
authorDavid Seikel2011-05-12 19:27:38 +1000
committerDavid Seikel2011-05-12 19:27:38 +1000
commit3c53aac212afba411d47efe2bb3928027b186462 (patch)
treefb5601df0213e34290219256fbf86e5b633d89ac /linden/indra/newview
parentReadme rewrite. (diff)
downloadmeta-impy-3c53aac212afba411d47efe2bb3928027b186462.zip
meta-impy-3c53aac212afba411d47efe2bb3928027b186462.tar.gz
meta-impy-3c53aac212afba411d47efe2bb3928027b186462.tar.bz2
meta-impy-3c53aac212afba411d47efe2bb3928027b186462.tar.xz
Temporary workaround for the "TP over 4096 sims" bug.
This is temporary, since it's not the real bug, and I want to go work on something else for a while. Plus, the grid I have test regions set up for this bug is having athor problems right now.
Diffstat (limited to '')
-rw-r--r--linden/indra/newview/pipeline.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp
index ae0e605..ec59a1d 100644
--- a/linden/indra/newview/pipeline.cpp
+++ b/linden/indra/newview/pipeline.cpp
@@ -1783,6 +1783,24 @@ void LLPipeline::shiftObjects(const LLVector3 &offset)
1783 } 1783 }
1784 mShiftList.resize(0); 1784 mShiftList.resize(0);
1785 1785
1786
1787 // This is a workaround for the "TP more than 4096 sims" bug.
1788 // This workaround is the difference between "can't see anything" and "can't see some prims close to you".
1789 // Sa it's a worthwhile workaround for now, pending further investigation.
1790 // The actual problem is deeper.
1791 // According to my notes, the actual bug is in void LLSpatialGroup::shift(const LLVector3 &offset), or deeper.
1792 // The original workaround came from Mana Janus TWO YEARS ago, as mentioned in https://jira.secondlife.com/browse/SVC-2941?
1793 // I've just refined the placement of the workaround, in an effort to track down the real problem.
1794 // onefang, from the meta-impy viewer.
1795 LLVector3 offsetOC = offset;
1796 // don't shift objects, if teleporting more than about 4000 sims, as
1797 // for long teleports shifting objects garbles the view at the target region
1798// if (offsetOC.lengthSquared() > 6.5e10f) // roughly 1000 sims, fer easier testing
1799 if (offsetOC.lengthSquared() > 1.05e12f) // 4000 sims, though the trigger point is being reported as 4096.
1800 offsetOC = LLVector3::zero;
1801 // End of workaround, except where offsetOC is used below.
1802
1803
1786 for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin(); 1804 for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
1787 iter != LLWorld::getInstance()->getRegionList().end(); ++iter) 1805 iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
1788 { 1806 {
@@ -1792,7 +1810,7 @@ void LLPipeline::shiftObjects(const LLVector3 &offset)
1792 LLSpatialPartition* part = region->getSpatialPartition(i); 1810 LLSpatialPartition* part = region->getSpatialPartition(i);
1793 if (part) 1811 if (part)
1794 { 1812 {
1795 part->shift(offset); 1813 part->shift(offsetOC);
1796 } 1814 }
1797 } 1815 }
1798 } 1816 }