From f2962eb522ee5a26036542f5a9e8efa23a3d2788 Mon Sep 17 00:00:00 2001 From: William Weaver Date: Sun, 2 Mar 2025 20:51:14 +0300 Subject: [PATCH] fix: Correctly update shadows on RenderShadowResolutionScale change Shadows were not updating correctly when the RenderShadowResolutionScale setting was changed in-session, leading to broken shadows. This commit changes the signal listener for "RenderShadowResolutionScale" in llviewercontrol.cpp from `handleShadowsResized` to `handleSetShaderChanged`. `handleSetShaderChanged` ensures a full shader update, which is necessary for this setting to take effect immediately, similar to other render settings like RenderDeferredSSAO. This fix ensures shadows update correctly when the resolution scale is changed without requiring a viewer restart. --- indra/newview/llviewercontrol.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 8ee6d60c58..2d988bfa54 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -1286,7 +1286,10 @@ void settings_setup_listeners() setting_setup_signal_listener(gSavedSettings, "RenderSpecularResY", handleLUTBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderSpecularExponent", handleLUTBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderAnisotropic", handleAnisotropicChanged); - setting_setup_signal_listener(gSavedSettings, "RenderShadowResolutionScale", handleShadowsResized); + // Ensure shader update on shadow resolution scale change for correct shadow rendering. + // setting_setup_signal_listener(gSavedSettings, "RenderShadowResolutionScale", handleShadowsResized); + setting_setup_signal_listener(gSavedSettings, "RenderShadowResolutionScale", handleSetShaderChanged); + // setting_setup_signal_listener(gSavedSettings, "RenderGlow", handleReleaseGLBufferChanged); setting_setup_signal_listener(gSavedSettings, "RenderGlow", handleSetShaderChanged); setting_setup_signal_listener(gSavedSettings, "RenderGlowResolutionPow", handleReleaseGLBufferChanged);