summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-06-15 19:23:15 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-06-15 22:19:34 +0300
commite7fee9e7fb081aa41f901ea43e77688d4f69c152 (patch)
treeddde296640d726aee2d99e436700f9b2a2f0d540
parent1d456767fe47773d9dadcaa456b0af31dc6060e5 (diff)
p#604 Fix draw range fluctuations #2
-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 9dfa9a0efd..4773a8a555 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 739ca25707..ac8bb1d0c5 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);
}