summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llviewerdisplay.cpp5
-rw-r--r--indra/newview/llviewertexture.cpp4
2 files changed, 5 insertions, 4 deletions
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index 59dc4319e1..36432265eb 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -217,9 +217,10 @@ void display_update_camera()
{
final_far *= 0.5f;
}
- else if (LLViewerTexture::sDesiredDiscardBias > 2.f)
+ // When system memory is critically low or recovering, shrink draw distance.
+ else if (LLViewerTexture::getSystemMemoryBudgetFactor() > 1.f)
{
- final_far = llmax(32.f, final_far / (LLViewerTexture::sDesiredDiscardBias - 1.f));
+ final_far = llmax(32.f, final_far / LLViewerTexture::getSystemMemoryBudgetFactor());
}
LLViewerCamera::getInstance()->setFar(final_far);
LLVOAvatar::sRenderDistance = llclamp(final_far, 16.f, 256.f);
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index c351d4da95..a6191a0a5b 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -713,7 +713,7 @@ void LLViewerTexture::updateClass()
else
{
// Slowly ramp up factor to free memory (increasing factor decreases draw range)
- constexpr F32 MAX_INCREMENT = 0.05;
+ constexpr F32 MAX_INCREMENT = 0.05f;
F32 increment = MAX_INCREMENT * llmax(-(F32)sys_budget_debt / (F32)budget_target, 0.f);
sSysMemoryFactor += increment * gFrameIntervalSeconds;
}
@@ -730,7 +730,7 @@ void LLViewerTexture::updateClass()
if (free_sys_mem > MEM_THRESHOLD && sSysMemoryFactor > 1.f)
{
// Ramp down factor over time.
- constexpr F32 DECREMENT = 0.02;
+ constexpr F32 DECREMENT = 0.02f;
sSysMemoryFactor -= DECREMENT * gFrameIntervalSeconds;
sSysMemoryFactor = llclamp(sSysMemoryFactor, 1.f, 2.f);
}