diff options
| author | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2026-06-15 19:23:15 +0300 |
|---|---|---|
| committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2026-06-15 22:19:34 +0300 |
| commit | e7fee9e7fb081aa41f901ea43e77688d4f69c152 (patch) | |
| tree | ddde296640d726aee2d99e436700f9b2a2f0d540 | |
| parent | 1d456767fe47773d9dadcaa456b0af31dc6060e5 (diff) | |
p#604 Fix draw range fluctuations #2
| -rw-r--r-- | indra/newview/llviewerdisplay.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llviewertexture.cpp | 4 |
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); } |
