summaryrefslogtreecommitdiff
path: root/indra/newview/llviewertexture.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewertexture.cpp')
-rw-r--r--indra/newview/llviewertexture.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 82fefde0a7..4a15b8624a 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -546,7 +546,9 @@ void LLViewerTexture::updateClass()
if (sEvaluationTimer.getElapsedTimeF32() > MEMORY_CHECK_WAIT_TIME)
{
static LLCachedControl<F32> low_mem_min_discard_increment(gSavedSettings, "RenderLowMemMinDiscardIncrement", .1f);
- sDesiredDiscardBias += (F32) low_mem_min_discard_increment * (F32) gFrameIntervalSeconds;
+
+ F32 increment = low_mem_min_discard_increment + llmax(over_pct, 0.f);
+ sDesiredDiscardBias += increment * gFrameIntervalSeconds;
}
}
else
@@ -605,7 +607,7 @@ void LLViewerTexture::updateClass()
last_desired_discard_bias = sDesiredDiscardBias;
was_backgrounded = true;
}
- sDesiredDiscardBias = 4.f;
+ sDesiredDiscardBias = 5.f;
}
}
else
@@ -619,7 +621,7 @@ void LLViewerTexture::updateClass()
}
}
- sDesiredDiscardBias = llclamp(sDesiredDiscardBias, 1.f, 4.f);
+ sDesiredDiscardBias = llclamp(sDesiredDiscardBias, 1.f, 5.f);
LLViewerTexture::sFreezeImageUpdates = false;
}
@@ -1555,8 +1557,8 @@ void LLViewerFetchedTexture::postCreateTexture()
if (!needsToSaveRawImage())
{
mNeedsAux = false;
- destroyRawImage();
}
+ destroyRawImage(); // will save raw image if needed
mNeedsCreateTexture = false;
}
@@ -2915,7 +2917,7 @@ void LLViewerLODTexture::processTextureStats()
mDesiredDiscardLevel = 0;
}
// Generate the request priority and render priority
- else if (mDontDiscard || !mUseMipMaps)
+ else if (mDontDiscard || !mUseMipMaps || (getFTType() == FTT_MAP_TILE))
{
mDesiredDiscardLevel = 0;
if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)