diff options
Diffstat (limited to 'indra/newview/llviewertexture.cpp')
-rw-r--r-- | indra/newview/llviewertexture.cpp | 12 |
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) |