From c489481ec5edd0470553eca9b7c4cecfe994926c Mon Sep 17 00:00:00 2001 From: Dave Parks Date: Tue, 6 Dec 2022 09:59:30 -0600 Subject: SL-18785 Fix for corrupt reflection probes on various preference changes. Add UI for Screen Space Reflections. --- indra/newview/app_settings/settings.xml | 14 +++++++- indra/newview/featuretable.txt | 20 ++++++++--- indra/newview/featuretable_mac.txt | 17 ++++++--- indra/newview/llfloaterpreference.cpp | 13 +++++-- indra/newview/llviewercontrol.cpp | 1 + indra/newview/llviewershadermgr.cpp | 2 +- indra/newview/pipeline.cpp | 8 ++--- .../en/floater_preferences_graphics_advanced.xml | 42 +++++++++++++++++----- 8 files changed, 91 insertions(+), 26 deletions(-) (limited to 'indra/newview') diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index bea54f0b69..cdfb7ab71b 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -10327,7 +10327,8 @@ Value 1 - RenderReflectionDetail + + RenderReflectionDetail Comment DEPRECATED -- use RenderTransparentWater and RenderReflectionProbeDetail -- Detail of reflection render pass. @@ -10349,6 +10350,17 @@ Value 2 + RenderReflectionsEnabled + + Comment + Enable/disable reflection probes + Persist + 1 + Type + Boolean + Value + 1 + RenderReflectionProbeDetail Comment diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt index aedba9b49a..14819ac5e9 100644 --- a/indra/newview/featuretable.txt +++ b/indra/newview/featuretable.txt @@ -1,4 +1,4 @@ -version 41 +version 42 // 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 @@ -47,7 +47,8 @@ RenderMaxPartCount 1 8192 RenderObjectBump 1 1 RenderLocalLights 1 1 RenderTransparentWater 1 1 -RenderReflectionProbeDetail 1 2 +RenderReflectionsEnabled 1 1 +RenderReflectionProbeDetail 1 2 RenderTerrainDetail 1 1 RenderTerrainLODFactor 1 2.0 RenderTreeLODFactor 1 1.0 @@ -90,7 +91,8 @@ RenderGlowResolutionPow 1 8 RenderLocalLights 1 0 RenderMaxPartCount 1 0 RenderTransparentWater 1 0 -RenderReflectionProbeDetail 1 -1 +RenderReflectionsEnabled 1 0 +RenderReflectionProbeDetail 1 0 RenderTerrainDetail 1 0 RenderTerrainLODFactor 1 1 RenderTreeLODFactor 1 0 @@ -115,7 +117,8 @@ RenderGlowResolutionPow 1 8 RenderMaxPartCount 1 2048 RenderLocalLights 1 1 RenderTransparentWater 1 0 -RenderReflectionProbeDetail 1 -1 +RenderReflectionsEnabled 1 0 +RenderReflectionProbeDetail 1 0 RenderTerrainDetail 1 1 RenderTerrainLODFactor 1 1.0 RenderTreeLODFactor 1 0.5 @@ -149,6 +152,7 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 0 // @@ -174,6 +178,7 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 1 // @@ -199,6 +204,7 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 1 // @@ -224,6 +230,7 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 2 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 1 // @@ -249,6 +256,7 @@ RenderDeferredSSAO 1 1 RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 2 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 1 // @@ -288,4 +296,6 @@ RenderGLContextCoreProfile 1 0 list GL3 RenderFSAASamples 0 0 -RenderReflectionProbeDetail 0 -1 +RenderReflectionsEnabled 0 0 +RenderReflectionProbeDetail 0 0 + diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt index d40e7aff0b..621499de2e 100644 --- a/indra/newview/featuretable_mac.txt +++ b/indra/newview/featuretable_mac.txt @@ -1,4 +1,4 @@ -version 41 +version 42 // 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 @@ -71,6 +71,7 @@ RenderFSAASamples 1 16 RenderMaxTextureIndex 1 16 RenderGLContextCoreProfile 1 1 RenderGLMultiThreaded 1 0 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 2 // @@ -97,7 +98,8 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 0 -RenderReflectionProbeDetail 1 -1 +RenderReflectionsEnabled 1 0 +RenderReflectionProbeDetail 1 0 // // Medium Low Graphics Settings @@ -122,7 +124,8 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 0 -RenderReflectionProbeDetail 1 -1 +RenderReflectionsEnabled 1 0 +RenderReflectionProbeDetail 1 0 // // Medium Graphics Settings (standard) @@ -147,6 +150,7 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 0 // @@ -172,6 +176,7 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 0 // @@ -197,6 +202,7 @@ RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 1 // @@ -222,6 +228,7 @@ RenderShadowDetail 1 2 RenderUseAdvancedAtmospherics 1 0 WLSkyDetail 1 48 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 1 // @@ -247,6 +254,7 @@ RenderDeferredSSAO 1 1 RenderUseAdvancedAtmospherics 1 0 RenderShadowDetail 1 2 RenderFSAASamples 1 2 +RenderReflectionsEnabled 1 1 RenderReflectionProbeDetail 1 1 // @@ -291,4 +299,5 @@ RenderFSAASamples 1 0 list GL3 RenderFSAASamples 0 0 -RenderReflectionProbeDetail 0 -1 +RenderReflectionProbeDetail 0 0 +RenderReflectionsEnabled 0 0 diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 81b3c23417..4c8b4df0b6 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -1220,10 +1220,19 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState() getChildView("fsaa")->setEnabled(FALSE); } - if (!LLFeatureManager::instance().isFeatureAvailable("RenderReflectionProbeDetail")) + enabled = false; + if (!LLFeatureManager::instance().isFeatureAvailable("RenderReflectionsEnabled")) { - getChildView("ReflectionDetail")->setEnabled(FALSE); + getChildView("ReflectionsEnabled")->setEnabled(FALSE); } + else + { + enabled = gSavedSettings.getBOOL("RenderReflectionsEnabled"); + } + + getChildView("ReflectionDetail")->setEnabled(enabled); + getChildView("ReflectionDetailText")->setEnabled(enabled); + getChildView("ScreenSpaceReflections")->setEnabled(enabled); // Hardware settings diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 0c9324cc42..534f3413b3 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -724,6 +724,7 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderResolutionDivisor", handleRenderResolutionDivisorChanged); // DEPRECATED - setting_setup_signal_listener(gSavedSettings, "RenderDeferred", handleRenderDeferredChanged); setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeDetail", handleReflectionProbeDetailChanged); + setting_setup_signal_listener(gSavedSettings, "RenderReflectionsEnabled", handleReflectionProbeDetailChanged); setting_setup_signal_listener(gSavedSettings, "RenderShadowDetail", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderDeferredSSAO", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderPerformanceTest", handleRenderPerfTestChanged); diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp index a742264801..408e60595c 100644 --- a/indra/newview/llviewershadermgr.cpp +++ b/indra/newview/llviewershadermgr.cpp @@ -912,7 +912,7 @@ std::string LLViewerShaderMgr::loadBasicShaders() ch = llmax(LLGLSLShader::sIndexedTextureChannels, 1); } - bool has_reflection_probes = gSavedSettings.getS32("RenderReflectionProbeDetail") >= 0 && gGLManager.mGLVersion > 3.99f; + bool has_reflection_probes = gSavedSettings.getBOOL("RenderReflectionsEnabled") && gGLManager.mGLVersion > 3.99f; std::vector index_channels; index_channels.push_back(-1); shaders.push_back( make_pair( "windlight/atmosphericsVarsF.glsl", mShaderLevel[SHADER_WINDLIGHT] ) ); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index fa46b0f02a..b41a02d491 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -410,7 +410,7 @@ void LLPipeline::init() sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights"); sRenderAttachedParticles = gSavedSettings.getBOOL("RenderAttachedParticles"); - mInitialized = true; + mInitialized = true; stop_glerror(); @@ -1019,8 +1019,6 @@ void LLPipeline::updateRenderBump() void LLPipeline::updateRenderDeferred() { sRenderPBR = sRenderDeferred; - static LLCachedControl sProbeDetail(gSavedSettings, "RenderReflectionProbeDetail", -1); - sReflectionProbesEnabled = sProbeDetail >= 0 && gGLManager.mGLVersion > 3.99f; } // static @@ -1112,7 +1110,9 @@ void LLPipeline::refreshCachedSettings() CameraDoFResScale = gSavedSettings.getF32("CameraDoFResScale"); RenderAutoHideSurfaceAreaLimit = gSavedSettings.getF32("RenderAutoHideSurfaceAreaLimit"); RenderScreenSpaceReflections = gSavedSettings.getBOOL("RenderScreenSpaceReflections"); + sReflectionProbesEnabled = gSavedSettings.getBOOL("RenderReflectionsEnabled"); RenderSpotLight = nullptr; + updateRenderDeferred(); if (gNonInteractive) @@ -7397,8 +7397,6 @@ void LLPipeline::doResetVertexBuffers(bool forced) LLVOPartGroup::destroyGL(); gGL.resetVertexBuffer(); - mReflectionMapManager.cleanup(); - SUBSYSTEM_CLEANUP(LLVertexBuffer); if (LLVertexBuffer::sGLCount != 0) diff --git a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml index 75b50c0e39..8ce365878a 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences_graphics_advanced.xml @@ -647,31 +647,57 @@ name="2" value="2"/> + + + + + + + + + - Reflections: + Reflection Detail: + -