summaryrefslogtreecommitdiff
path: root/indra/newview/llviewercontrol.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <andreykproductengine@lindenlab.com>2025-08-26 18:18:07 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2025-08-26 21:11:47 +0300
commit8a585912adab1948e250c30d8ceb3588b9148600 (patch)
tree62e2fd8c85b23729a6f6c82878cb7a39a3f24126 /indra/newview/llviewercontrol.cpp
parent9f50a5b25bc7471fba5cdb19d6793f460422cbe5 (diff)
#4598 Crash in LLReflectionMapManager::update
Not enough data for a solid conclusion (does something create settings in a thread?), but should be avoidable if we cache settings differently.
Diffstat (limited to 'indra/newview/llviewercontrol.cpp')
-rw-r--r--indra/newview/llviewercontrol.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 598ad89907..d39805f4c7 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -447,6 +447,7 @@ static bool handleRenderDynamicLODChanged(const LLSD& newvalue)
static bool handleReflectionProbeDetailChanged(const LLSD& newvalue)
{
+ gPipeline.mReflectionMapManager.refreshSettings();
if (gPipeline.isInit())
{
LLPipeline::refreshCachedSettings();
@@ -459,6 +460,12 @@ static bool handleReflectionProbeDetailChanged(const LLSD& newvalue)
return true;
}
+static bool handleReflectionProbeCountChanged(const LLSD& newvalue)
+{
+ gPipeline.mReflectionMapManager.refreshSettings();
+ return true;
+}
+
#if LL_DARWIN
static bool handleAppleUseMultGLChanged(const LLSD& newvalue)
{
@@ -836,6 +843,7 @@ void settings_setup_listeners()
setting_setup_signal_listener(gSavedSettings, "RenderResolutionDivisor", handleRenderResolutionDivisorChanged);
setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeLevel", handleReflectionProbeDetailChanged);
setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeDetail", handleReflectionProbeDetailChanged);
+ setting_setup_signal_listener(gSavedSettings, "RenderReflectionProbeCount", handleReflectionProbeCountChanged);
setting_setup_signal_listener(gSavedSettings, "RenderReflectionsEnabled", handleReflectionProbeDetailChanged);
#if LL_DARWIN
setting_setup_signal_listener(gSavedSettings, "RenderAppleUseMultGL", handleAppleUseMultGLChanged);