summaryrefslogtreecommitdiff
path: root/indra/newview/llfeaturemanager.cpp
diff options
context:
space:
mode:
authorAndrey Lihatskiy <118752495+marchcat@users.noreply.github.com>2026-07-17 12:57:48 +0300
committerGitHub <noreply@github.com>2026-07-17 12:57:48 +0300
commit8a22869dfad731f8cd9f4164a7a2b57cd70af51c (patch)
tree1d1133495ccf193a0b36d903db1407243935615f /indra/newview/llfeaturemanager.cpp
parentf5e788b1b4ff5fb45f20ee5fa5daad7cca42069f (diff)
parent8f05370e7ebccd086b5d4791a1b2dc052361b026 (diff)
Merge pull request #6016 from secondlife/marchcat/slua-26.3
SLua PV <- 26.3 merge
Diffstat (limited to 'indra/newview/llfeaturemanager.cpp')
-rw-r--r--indra/newview/llfeaturemanager.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index 5a2b1c719c..b67b7e2bff 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -750,9 +750,29 @@ void LLFeatureManager::applyBaseMasks()
{
maskFeatures("VRAMGT512");
}
- if (gGLManager.mVRAM < 2048)
+
+ // Texture quality is driven by detected VRAM. Feature masks take the MIN
+ // of applied values, so cascading lower tiers downgrade RenderTextureQuality:
+ // <= 2GB -> Low(0), <= 4GB -> Medium(1), < 8GB -> High(2), >= 8GB -> Ultra(3).
+ // When VRAM cannot be detected (mVRAM == 0, common on Linux) fall back to Medium.
+ if (gGLManager.mVRAM == 0)
{
- maskFeatures("VRAMLT2GB");
+ maskFeatures("VRAMLT4GB");
+ }
+ else
+ {
+ if (gGLManager.mVRAM < 8192)
+ {
+ maskFeatures("VRAMLT8GB");
+ }
+ if (gGLManager.mVRAM <= 4096)
+ {
+ maskFeatures("VRAMLT4GB");
+ }
+ if (gGLManager.mVRAM <= 2048)
+ {
+ maskFeatures("VRAMLT2GB");
+ }
}
if (!gGLManager.mHasAnisotropic || 2.f > gGLManager.mMaxAnisotropy)
{