From c8067cfd9708fe30659b1f07f6d035508bea3033 Mon Sep 17 00:00:00 2001
From: Xiaohong Bao <bao@lindenlab.com>
Date: Wed, 9 Oct 2013 21:42:53 -0600
Subject: [PATCH] Enable the debug setting "NonvisibleObjectsInMemoryTime"

---
 indra/newview/app_settings/settings.xml | 24 ++++++++++++------------
 indra/newview/llvocache.cpp             |  7 ++++++-
 2 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 27342712c6e..7bfca2834b8 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -4753,18 +4753,7 @@
       <string>Boolean</string>
       <key>Value</key>
       <integer>0</integer>
-    </map>
-    <key>InvisibleObjectsInMemoryTime</key>
-    <map>
-      <key>Comment</key>
-      <string>Number of frames invisible objects stay in memory before being removed. 0 means never to remove.</string>
-      <key>Persist</key>
-      <integer>1</integer>
-      <key>Type</key>
-      <string>U32</string>
-      <key>Value</key>
-      <integer>64</integer>
-    </map>
+    </map>    
     <key>JoystickAvatarEnabled</key>
     <map>
       <key>Comment</key>
@@ -6581,6 +6570,17 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+    <key>NonvisibleObjectsInMemoryTime</key>
+    <map>
+      <key>Comment</key>
+      <string>Number of frames non-visible objects stay in memory before being removed. 0 means never to remove.</string>
+      <key>Persist</key>
+      <integer>1</integer>
+      <key>Type</key>
+      <string>U32</string>
+      <key>Value</key>
+      <integer>64</integer>
+    </map>
     <key>NoPreload</key>
     <map>
       <key>Comment</key>
diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp
index 0466dea39de..f16f3507c33 100755
--- a/indra/newview/llvocache.cpp
+++ b/indra/newview/llvocache.cpp
@@ -347,7 +347,7 @@ void LLVOCacheEntry::updateDebugSettings()
 	static LLCachedControl<F32> squared_back_angle(gSavedSettings,"BackProjectionAngleSquared");
 
 	//the number of frames invisible objects stay in memory
-	static LLCachedControl<U32> inv_obj_time(gSavedSettings,"InvisibleObjectsInMemoryTime");
+	static LLCachedControl<U32> inv_obj_time(gSavedSettings,"NonvisibleObjectsInMemoryTime");
 
 	sMinFrameRange = inv_obj_time - 1; //make 0 to be the maximum 
 
@@ -374,6 +374,11 @@ bool LLVOCacheEntry::isRecentlyVisible() const
 		vis = (rad * rad / mSceneContrib < sBackDistanceSquared);
 	}
 
+	if(!vis)
+	{
+		vis = (getVisible() + sMinFrameRange > LLViewerOctreeEntryData::getCurrentFrame());
+	}
+
 	return vis;
 }
 
-- 
GitLab