From 97c6bf8f743ef4956d7d706e26f25ce6f32182b4 Mon Sep 17 00:00:00 2001
From: Brad Linden <brad@lindenlab.com>
Date: Thu, 27 Apr 2023 18:04:49 -0700
Subject: [PATCH] Readded RenderClass1MemoryBandwidth setting after DRTVWR-559
 & DRTVWR-539 merge

Has to use class1 now since class0 shouldn't ever be in use on
end-user systems anymore.
---
 indra/newview/app_settings/settings.xml | 11 +++++++++++
 indra/newview/llfeaturemanager.cpp      |  9 +++++----
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 54246da92b9..cda71dd9b09 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -8828,6 +8828,17 @@
       <key>Value</key>
       <integer>0</integer>
     </map>
+  <key>RenderClass1MemoryBandwidth</key>
+  <map>
+    <key>Comment</key>
+    <string>Memory bandwidth at which to default to Class 1 in gigabytes per second.  Used as basis for higher classes.</string>
+    <key>Persist</key>
+    <integer>1</integer>
+    <key>Type</key>
+    <string>F32</string>
+    <key>Value</key>
+    <real>32.0</real>
+  </map>
   <key>RenderCloudShadowAmbianceFactor</key>
   <map>
     <key>Comment</key>
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index b8143eb545e..a2aae91ae14 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -408,6 +408,7 @@ bool LLFeatureManager::loadGPUClass()
 {
 	if (!gSavedSettings.getBOOL("SkipBenchmark"))
 	{
+		F32 class1_gbps = gSavedSettings.getF32("RenderClass1MemoryBandwidth");
 		//get memory bandwidth from benchmark
 		F32 gbps;
 		try
@@ -442,19 +443,19 @@ bool LLFeatureManager::loadGPUClass()
 			mGPUClass = GPU_CLASS_0;
 	#endif
 		}
-		else if (gbps <= 32.0f)
+		else if (gbps <= class1_gbps)
 		{
 			mGPUClass = GPU_CLASS_1;
 		}
-		else if (gbps <= 64.0f)
+		else if (gbps <= class1_gbps *2.f)
 		{
 			mGPUClass = GPU_CLASS_2;
 		}
-		else if (gbps <= 128.0f)
+		else if (gbps <= class1_gbps*4.f)
 		{
 			mGPUClass = GPU_CLASS_3;
 		}
-		else if (gbps <= 256.0f)
+		else if (gbps <= class1_gbps*8.f)
 		{
 			mGPUClass = GPU_CLASS_4;
 		}
-- 
GitLab