diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index ca134bff92..1020523ad3 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -672,6 +672,16 @@ void LLPipeline::init()
// FIRE-33085 Region corner markers
connectRefreshCachedSettingsSafe("fsregioncornerbeacons");
//
+ // FIRE-36767 Sync beacon settings when changed via debug settings
+ connectRefreshCachedSettingsSafe("physicalbeacon");
+ connectRefreshCachedSettingsSafe("scriptsbeacon");
+ connectRefreshCachedSettingsSafe("scripttouchbeacon");
+ connectRefreshCachedSettingsSafe("soundsbeacon");
+ connectRefreshCachedSettingsSafe("particlesbeacon");
+ connectRefreshCachedSettingsSafe("moapbeacon");
+ connectRefreshCachedSettingsSafe("renderbeacons");
+ connectRefreshCachedSettingsSafe("renderhighlights");
+ //
LLPointer cntrl_ptr = gSavedSettings.getControl("CollectFontVertexBuffers");
if (cntrl_ptr.notNull())
@@ -1181,6 +1191,16 @@ void LLPipeline::refreshCachedSettings()
// FIRE-33085 Region corner markers
LLPipeline::sRenderRegionCornerBeacons = gSavedSettings.getBOOL("fsregioncornerbeacons");
//
+ // FIRE-36767 Sync beacon settings when changed via debug settings
+ LLPipeline::sRenderPhysicalBeacons = gSavedSettings.getBOOL("physicalbeacon");
+ LLPipeline::sRenderScriptedBeacons = gSavedSettings.getBOOL("scriptsbeacon");
+ LLPipeline::sRenderScriptedTouchBeacons = gSavedSettings.getBOOL("scripttouchbeacon");
+ LLPipeline::sRenderSoundBeacons = gSavedSettings.getBOOL("soundsbeacon");
+ LLPipeline::sRenderParticleBeacons = gSavedSettings.getBOOL("particlesbeacon");
+ LLPipeline::sRenderMOAPBeacons = gSavedSettings.getBOOL("moapbeacon");
+ LLPipeline::sRenderBeacons = gSavedSettings.getBOOL("renderbeacons");
+ LLPipeline::sRenderHighlight = gSavedSettings.getBOOL("renderhighlights");
+ //
LLPipeline::sUseOcclusion =
(!gUseWireframe