summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2012-04-18 14:50:23 -0500
committerDave Parks <davep@lindenlab.com>2012-04-18 14:50:23 -0500
commit06bd74502713200d2103b576f7b97e715c1992c1 (patch)
treeeba6dd12bf63607b14d7cfd57850780fc07372ba
parentb425b1509681b5c6abec92903ce3c6d96f7665b2 (diff)
MAINT-775 More aggressive removal of textures from video memory.
-rw-r--r--indra/newview/llviewertexture.cpp8
-rw-r--r--indra/newview/llviewertexturelist.cpp2
-rw-r--r--indra/newview/llvovolume.cpp15
3 files changed, 15 insertions, 10 deletions
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 51737149ef..a0782c1852 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -1377,10 +1377,10 @@ void LLViewerFetchedTexture::dump()
// ONLY called from LLViewerFetchedTextureList
void LLViewerFetchedTexture::destroyTexture()
{
- if(LLImageGL::sGlobalTextureMemoryInBytes < sMaxDesiredTextureMemInBytes)//not ready to release unused memory.
- {
- return ;
- }
+ //if(LLImageGL::sGlobalTextureMemoryInBytes < sMaxDesiredTextureMemInBytes)//not ready to release unused memory.
+ //{
+ // return ;
+ //}
if (mNeedsCreateTexture)//return if in the process of generating a new texture.
{
return ;
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index f1555388a2..a9275fbb29 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -680,7 +680,7 @@ void LLViewerTextureList::updateImagesDecodePriorities()
// Flush formatted images using a lazy flush
//
const F32 LAZY_FLUSH_TIMEOUT = 30.f; // stop decoding
- const F32 MAX_INACTIVE_TIME = 50.f; // actually delete
+ const F32 MAX_INACTIVE_TIME = 5.f; // actually delete
S32 min_refs = 3; // 1 for mImageList, 1 for mUUIDMap, 1 for local reference
S32 num_refs = imagep->getNumRefs();
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index f656e61cca..1193aa50f9 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -729,7 +729,15 @@ void LLVOVolume::updateTextureVirtualSize(bool forced)
if(!forced)
{
if(!isVisible())
- {
+ { //don't load textures for non-visible faces
+ const S32 num_faces = mDrawable->getNumFaces();
+ for (S32 i = 0; i < num_faces; i++)
+ {
+ LLFace* face = mDrawable->getFace(i);
+ face->setPixelArea(0.f);
+ face->setVirtualSize(0.f);
+ }
+
return ;
}
@@ -4056,7 +4064,6 @@ void LLVolumeGeometryManager::getGeometry(LLSpatialGroup* group)
}
static LLFastTimer::DeclareTimer FTM_REBUILD_VOLUME_VB("Volume");
-static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
static LLDrawPoolAvatar* get_avatar_drawpool(LLViewerObject* vobj)
{
@@ -4098,7 +4105,6 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
{
if (group->isState(LLSpatialGroup::MESH_DIRTY) && !LLPipeline::sDelayVBUpdate)
{
- LLFastTimer ftm(FTM_REBUILD_VBO);
LLFastTimer ftm2(FTM_REBUILD_VOLUME_VB);
rebuildMesh(group);
@@ -4107,8 +4113,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
}
group->mBuilt = 1.f;
- LLFastTimer ftm(FTM_REBUILD_VBO);
-
+
LLFastTimer ftm2(FTM_REBUILD_VOLUME_VB);
LLVOAvatar* pAvatarVO = NULL;