summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan "Geenz" Goodman <geenz@geenzo.com>2026-05-22 12:33:30 -0400
committerJonathan "Geenz" Goodman <geenz@geenzo.com>2026-05-22 12:33:30 -0400
commit755c19a05053481b19e6f6febd51aedcb238db79 (patch)
tree4cedc2883a569b2f53d353d6d36ee0724ae39cd9
parent6bef0d0b7fc26e44f6107503a2097172d9218d8a (diff)
Move texture quality to auto detect on VRAM
-rw-r--r--indra/newview/featuretable.txt27
-rw-r--r--indra/newview/featuretable_mac.txt27
-rw-r--r--indra/newview/llfeaturemanager.cpp24
3 files changed, 60 insertions, 18 deletions
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index c408edf963..f05f77c222 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -1,4 +1,4 @@
-version 75
+version 76
// The version number above should be incremented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
@@ -128,7 +128,6 @@ RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
RenderDisableVintageMode 1 0
-RenderTextureQuality 1 0
RenderReflectionProbeCount 1 1
//
@@ -171,7 +170,6 @@ RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
RenderDisableVintageMode 1 0
-RenderTextureQuality 1 0
RenderReflectionProbeCount 1 32
//
@@ -213,7 +211,6 @@ RenderCASSharpness 1 0
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 1
RenderReflectionProbeCount 1 64
//
@@ -255,7 +252,6 @@ RenderCASSharpness 1 0
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 1
RenderReflectionProbeCount 1 64
//
@@ -297,7 +293,6 @@ RenderCASSharpness 1 0.4
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 2
RenderReflectionProbeCount 1 128
//
@@ -339,7 +334,6 @@ RenderCASSharpness 1 0.4
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 2
RenderReflectionProbeCount 1 256
//
@@ -381,7 +375,6 @@ RenderCASSharpness 1 0.4
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 3
RenderReflectionProbeCount 1 256
//
@@ -400,6 +393,24 @@ list VRAMGT512
RenderCompressTextures 1 0
//
+// VRAM 4GB to 8GB
+//
+list VRAMLT8GB
+RenderTextureQuality 1 2
+
+//
+// VRAM 2GB to 4GB
+//
+list VRAMLT4GB
+RenderTextureQuality 1 1
+
+//
+// VRAM 2GB and under
+//
+list VRAMLT2GB
+RenderTextureQuality 1 0
+
+//
// "Default" setups for safe, low, medium, high
//
list safe
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index 7bb0e3f7f1..b11fa28c48 100644
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
@@ -1,4 +1,4 @@
-version 74
+version 75
// The version number above should be incremented IF AND ONLY IF some
// change has been made that is sufficiently important to justify
// resetting the graphics preferences of all users to the recommended
@@ -128,7 +128,6 @@ RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
RenderDisableVintageMode 1 0
-RenderTextureQuality 1 0
RenderReflectionProbeCount 1 1
//
@@ -171,7 +170,6 @@ RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
RenderDisableVintageMode 1 0
-RenderTextureQuality 1 0
RenderReflectionProbeCount 1 32
//
@@ -213,7 +211,6 @@ RenderCASSharpness 1 0
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 1
RenderReflectionProbeCount 1 64
//
@@ -255,7 +252,6 @@ RenderCASSharpness 1 0
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 1
RenderReflectionProbeCount 1 64
//
@@ -297,7 +293,6 @@ RenderCASSharpness 1 0
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 2
RenderReflectionProbeCount 1 128
//
@@ -339,7 +334,6 @@ RenderCASSharpness 1 0.4
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 2
RenderReflectionProbeCount 1 256
//
@@ -381,7 +375,6 @@ RenderCASSharpness 1 0.4
RenderExposure 1 1
RenderTonemapType 1 1
RenderTonemapMix 1 0.7
-RenderTextureQuality 1 3
RenderReflectionProbeCount 1 256
//
@@ -401,6 +394,24 @@ list VRAMGT512
RenderCompressTextures 1 0
//
+// VRAM 4GB to 8GB
+//
+list VRAMLT8GB
+RenderTextureQuality 1 2
+
+//
+// VRAM 2GB to 4GB
+//
+list VRAMLT4GB
+RenderTextureQuality 1 1
+
+//
+// VRAM 2GB and under
+//
+list VRAMLT2GB
+RenderTextureQuality 1 0
+
+//
// "Default" setups for safe, low, medium, high
//
list safe
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index c8692224f1..aab2865ef7 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -752,9 +752,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.mGLVersion < 3.99f)
{