From b39a0be4522877aeffba4a18928187fe9528cb15 Mon Sep 17 00:00:00 2001
From: Rye Mutt <rye@alchemyviewer.org>
Date: Tue, 4 Jun 2024 08:10:20 -0400
Subject: [PATCH] Tweak feature table for better safety

---
 indra/newview/alrenderutils.cpp               |  3 ++-
 indra/newview/app_settings/settings.xml       |  2 +-
 .../newview/app_settings/settings_alchemy.xml | 11 ++++++++++
 indra/newview/featuretable.txt                | 21 ++++++++++++++++---
 indra/newview/featuretable_linux.txt          | 21 ++++++++++++++++---
 5 files changed, 50 insertions(+), 8 deletions(-)

diff --git a/indra/newview/alrenderutils.cpp b/indra/newview/alrenderutils.cpp
index baec2c8936f..87b1d8fc75a 100644
--- a/indra/newview/alrenderutils.cpp
+++ b/indra/newview/alrenderutils.cpp
@@ -263,6 +263,7 @@ void LutCube::writeColor(int x, int y, int z, unsigned char r, unsigned char g,
 ALRenderUtil::ALRenderUtil()
 {
     // Connect settings
+    mSettingConnections.push_back(gSavedSettings.getControl("RenderColorGrade")->getSignal()->connect(boost::bind(&ALRenderUtil::setupColorGrade, this)));
     mSettingConnections.push_back(gSavedSettings.getControl("RenderColorGradeLUT")->getSignal()->connect(boost::bind(&ALRenderUtil::setupColorGrade, this)));
     mSettingConnections.push_back(gSavedSettings.getControl("RenderToneMapType")->getSignal()->connect(boost::bind(&ALRenderUtil::setupTonemap, this)));
     mSettingConnections.push_back(gSavedSettings.getControl("RenderExposure")->getSignal()->connect(boost::bind(&ALRenderUtil::setupTonemap, this)));
@@ -472,7 +473,7 @@ bool ALRenderUtil::setupColorGrade()
     if (LLPipeline::sRenderDeferred)
     {
         std::string lut_name = gSavedSettings.getString("RenderColorGradeLUT");
-        if (!lut_name.empty())
+        if (gSavedSettings.getBOOL("RenderColorGrade") && !lut_name.empty())
         {
             std::string lut_path = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "colorlut", lut_name);
 
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index e565bca014f..4e4efab628c 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -8944,7 +8944,7 @@
       <key>Comment</key>
       <string>Dynamically adjust level of detail.</string>
       <key>Persist</key>
-      <integer>1</integer>
+      <integer>0</integer>
       <key>Type</key>
       <string>Boolean</string>
       <key>Value</key>
diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml
index 797fd079f45..b1414c4f3f6 100644
--- a/indra/newview/app_settings/settings_alchemy.xml
+++ b/indra/newview/app_settings/settings_alchemy.xml
@@ -1082,6 +1082,17 @@
 			<key>Value</key>
 			<real>0.275</real>
 		</map>
+        <key>RenderColorGrade</key>
+        <map>
+            <key>Comment</key>
+            <string>Enable color grading</string>
+            <key>Persist</key>
+            <integer>1</integer>
+            <key>Type</key>
+            <string>Boolean</string>
+            <key>Value</key>
+            <integer>0</integer>
+        </map>
 		<key>RenderColorGradeLUT</key>
 		<map>
 			<key>Comment</key>
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index e4a3ff5597c..69ea5ee6526 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -74,12 +74,20 @@ RenderGLMultiThreadedMedia         1   1
 RenderReflectionProbeResolution 1 128
 RenderScreenSpaceReflections 1  1
 RenderMirrors				1	1
-RenderToneMapType 1 1
 RenderVSyncEnable 1 0
 RenderHeroProbeResolution	1	2048
 RenderHeroProbeDistance		1	16
-RenderHeroProbeUpdateRate	1	1
-RenderHeroProbeConservativeUpdateMultiplier 1 4
+RenderHeroProbeUpdateRate	1	4
+RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderExposure 1 1.0
+RenderToneMapType 1 1
+RenderColorGrade 1 0
+RenderSharpenMethod 1 1
+RenderSharpenCASSharpness 1 0.6
+RenderSharpenDLSSharpness 1 0.6
+RenderSharpenDLSDenoise 1 0.17
+RenderResolutionMultiplier 1 1.0
+AlchemyGlobalLightScale 1 1.0
 
 
 //
@@ -116,6 +124,7 @@ RenderHeroProbeResolution	1	256
 RenderHeroProbeDistance		1	4
 RenderHeroProbeUpdateRate	1	4
 RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderSharpenMethod 1 0
 
 //
 // Medium Low Graphics Settings
@@ -151,6 +160,7 @@ RenderHeroProbeResolution	1	256
 RenderHeroProbeDistance		1	6
 RenderHeroProbeUpdateRate	1	3
 RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderSharpenMethod 1 0
 
 //
 // Medium Graphics Settings (standard)
@@ -186,6 +196,7 @@ RenderHeroProbeResolution	1	512
 RenderHeroProbeDistance		1	6
 RenderHeroProbeUpdateRate	1	3
 RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderSharpenMethod 1 0
 
 //
 // Medium High Graphics Settings
@@ -221,6 +232,7 @@ RenderHeroProbeResolution	1	512
 RenderHeroProbeDistance		1	6
 RenderHeroProbeUpdateRate	1	2
 RenderHeroProbeConservativeUpdateMultiplier 1 8
+RenderSharpenMethod 1 1
 
 //
 // High Graphics Settings (SSAO + sun shadows)
@@ -256,6 +268,7 @@ RenderHeroProbeResolution	1	512
 RenderHeroProbeDistance		1	8
 RenderHeroProbeUpdateRate	1	2
 RenderHeroProbeConservativeUpdateMultiplier 1 8
+RenderSharpenMethod 1 1
 
 //
 // High Ultra Graphics Settings (deferred + SSAO + all shadows)
@@ -291,6 +304,7 @@ RenderHeroProbeResolution	1	1024
 RenderHeroProbeDistance		1	16
 RenderHeroProbeUpdateRate	1	1
 RenderHeroProbeConservativeUpdateMultiplier 1 4
+RenderSharpenMethod 1 1
 
 //
 // Ultra graphics (REALLY PURTY!)
@@ -326,6 +340,7 @@ RenderHeroProbeResolution	1	2048
 RenderHeroProbeDistance		1	16
 RenderHeroProbeUpdateRate	1	1
 RenderHeroProbeConservativeUpdateMultiplier 1 4
+RenderSharpenMethod 1 1
 
 //
 // Class Unknown Hardware (unknown)
diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt
index ecaee9d3758..28e9d967b60 100644
--- a/indra/newview/featuretable_linux.txt
+++ b/indra/newview/featuretable_linux.txt
@@ -74,12 +74,20 @@ RenderGLMultiThreadedMedia         1   1
 RenderReflectionProbeResolution 1 128
 RenderScreenSpaceReflections 1  1
 RenderMirrors				1	1
-RenderToneMapType 1 1
 RenderVSyncEnable 1 0
 RenderHeroProbeResolution	1	2048
 RenderHeroProbeDistance		1	16
-RenderHeroProbeUpdateRate	1	1
-RenderHeroProbeConservativeUpdateMultiplier 1 4
+RenderHeroProbeUpdateRate	1	4
+RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderExposure 1 1.0
+RenderToneMapType 1 1
+RenderColorGrade 1 0
+RenderSharpenMethod 1 1
+RenderSharpenCASSharpness 1 0.6
+RenderSharpenDLSSharpness 1 0.6
+RenderSharpenDLSDenoise 1 0.17
+RenderResolutionMultiplier 1 1.0
+AlchemyGlobalLightScale 1 1.0
 
 
 //
@@ -116,6 +124,7 @@ RenderHeroProbeResolution	1	256
 RenderHeroProbeDistance		1	4
 RenderHeroProbeUpdateRate	1	4
 RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderSharpenMethod 1 0
 
 //
 // Medium Low Graphics Settings
@@ -151,6 +160,7 @@ RenderHeroProbeResolution	1	256
 RenderHeroProbeDistance		1	6
 RenderHeroProbeUpdateRate	1	3
 RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderSharpenMethod 1 0
 
 //
 // Medium Graphics Settings (standard)
@@ -186,6 +196,7 @@ RenderHeroProbeResolution	1	512
 RenderHeroProbeDistance		1	6
 RenderHeroProbeUpdateRate	1	3
 RenderHeroProbeConservativeUpdateMultiplier 1 16
+RenderSharpenMethod 1 0
 
 //
 // Medium High Graphics Settings
@@ -221,6 +232,7 @@ RenderHeroProbeResolution	1	512
 RenderHeroProbeDistance		1	6
 RenderHeroProbeUpdateRate	1	2
 RenderHeroProbeConservativeUpdateMultiplier 1 8
+RenderSharpenMethod 1 1
 
 //
 // High Graphics Settings (SSAO + sun shadows)
@@ -256,6 +268,7 @@ RenderHeroProbeResolution	1	512
 RenderHeroProbeDistance		1	8
 RenderHeroProbeUpdateRate	1	2
 RenderHeroProbeConservativeUpdateMultiplier 1 8
+RenderSharpenMethod 1 1
 
 //
 // High Ultra Graphics Settings (deferred + SSAO + all shadows)
@@ -291,6 +304,7 @@ RenderHeroProbeResolution	1	1024
 RenderHeroProbeDistance		1	16
 RenderHeroProbeUpdateRate	1	1
 RenderHeroProbeConservativeUpdateMultiplier 1 4
+RenderSharpenMethod 1 1
 
 //
 // Ultra graphics (REALLY PURTY!)
@@ -326,6 +340,7 @@ RenderHeroProbeResolution	1	2048
 RenderHeroProbeDistance		1	16
 RenderHeroProbeUpdateRate	1	1
 RenderHeroProbeConservativeUpdateMultiplier 1 4
+RenderSharpenMethod 1 1
 
 //
 // Class Unknown Hardware (unknown)
-- 
GitLab