diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index ed6269df657e2b2a0cf660f1d24a65083d166ad0..304932dd1aa520ffeaeb9b318a5e47ebe34db169 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -9727,18 +9727,6 @@
     <integer>1</integer>
   </map>
 
-  <key>RenderDebugTexcoord</key>
-  <map>
-    <key>Comment</key>
-    <string>Enables a colored debug overlay on meshes to show UV coordinates. Not all meshes support this setting.</string>
-    <key>Persist</key>
-    <integer>0</integer>
-    <key>Type</key>
-    <string>Boolean</string>
-    <key>Value</key>
-    <integer>0</integer>
-  </map>
-
   <key>RenderDeferredBlurLight</key>
   <map>
     <key>Comment</key>
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl
index ee44ad874ca280a99726b0d6dd5f665f7242b407..ddb53ff852bbf08647d9435367ad14a2472fdeaf 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pbralphaV.glsl
@@ -64,9 +64,6 @@ out vec2 basecolor_texcoord;
 out vec2 normal_texcoord;
 out vec2 metallic_roughness_texcoord;
 out vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-out vec2 original_texcoord;
-#endif
 
 out vec4 vertex_color;
 
@@ -99,9 +96,6 @@ void main()
 	normal_texcoord = texture_transform(texcoord0, texture_normal_matrix, texture_matrix0);
 	metallic_roughness_texcoord = texture_transform(texcoord0, texture_metallic_roughness_matrix, texture_matrix0);
 	emissive_texcoord = texture_transform(texcoord0, texture_emissive_matrix, texture_matrix0);
-#if DEBUG_TEXCOORD
-    original_texcoord = texcoord0;
-#endif
 
 #ifdef HAS_SKIN
 	vec3 n = (mat*vec4(normal.xyz+position.xyz,1.0)).xyz-pos.xyz;
@@ -143,9 +137,6 @@ in vec2 texcoord0;
 
 out vec2 basecolor_texcoord;
 out vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-out vec2 original_texcoord;
-#endif
 
 out vec4 vertex_color;
 
@@ -161,9 +152,6 @@ void main()
 
 	basecolor_texcoord = texture_transform(texcoord0, texture_basecolor_matrix, texture_matrix0);
 	emissive_texcoord = texture_transform(texcoord0, texture_emissive_matrix, texture_matrix0);
-#if DEBUG_TEXCOORD
-    original_texcoord = texcoord0;
-#endif
 
 	vertex_color = diffuse_color;
 }
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl
index fd2aa6eb544f085845e6187b1b47b057a1a83a23..c4c5a7872be7c36643190d0c1b982cf74ba38910 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueF.glsl
@@ -51,9 +51,6 @@ in vec2 basecolor_texcoord;
 in vec2 normal_texcoord;
 in vec2 metallic_roughness_texcoord;
 in vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-in vec2 original_texcoord;
-#endif
 
 uniform float minimum_alpha; // PBR alphaMode: MASK, See: mAlphaCutoff, setAlphaCutoff()
 
@@ -72,10 +69,6 @@ void main()
     }
 
     vec3 col = vertex_color.rgb * srgb_to_linear(basecolor.rgb);
-#if DEBUG_TEXCOORD
-    vec3 texcoord_color = vec3(mod(original_texcoord, 1.0), 0);
-    col = texcoord_color;
-#endif
 
     // from mikktspace.com
     vec3 vNt = texture2D(bumpMap, normal_texcoord.xy).xyz*2.0-1.0;
@@ -130,9 +123,6 @@ in vec4 vertex_color;
 
 in vec2 basecolor_texcoord;
 in vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-in vec2 original_texcoord;
-#endif
 
 uniform float minimum_alpha; // PBR alphaMode: MASK, See: mAlphaCutoff, setAlphaCutoff()
 
@@ -148,10 +138,6 @@ void main()
     }
 
     vec3 col = vertex_color.rgb * srgb_to_linear(basecolor.rgb);
-#if DEBUG_TEXCOORD
-    vec3 texcoord_color = vec3(mod(original_texcoord, 1.0), 0);
-    col = texcoord_color;
-#endif
 
     vec3 emissive = emissiveColor;
     emissive *= srgb_to_linear(texture2D(emissiveMap, emissive_texcoord.xy).rgb);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl
index aeb6b85e12f1c4958b2802db9af91a3629c229d6..f0e3d4f034681a9e288a31bf12ba779a7c849e9d 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pbropaqueV.glsl
@@ -53,9 +53,6 @@ out vec2 basecolor_texcoord;
 out vec2 normal_texcoord;
 out vec2 metallic_roughness_texcoord;
 out vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-out vec2 original_texcoord;
-#endif
  
 out vec4 vertex_color;
 
@@ -85,9 +82,6 @@ void main()
     normal_texcoord = texture_transform(texcoord0, texture_normal_matrix, texture_matrix0);
     metallic_roughness_texcoord = texture_transform(texcoord0, texture_metallic_roughness_matrix, texture_matrix0);
     emissive_texcoord = texture_transform(texcoord0, texture_emissive_matrix, texture_matrix0);
-#if DEBUG_TEXCOORD
-    original_texcoord = texcoord0;
-#endif
 
 #ifdef HAS_SKIN
 	vec3 n = (mat*vec4(normal.xyz+position.xyz,1.0)).xyz-pos.xyz;
@@ -123,9 +117,6 @@ in vec2 texcoord0;
 
 out vec2 basecolor_texcoord;
 out vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-out vec2 original_texcoord;
-#endif
  
 out vec4 vertex_color;
 
@@ -138,9 +129,6 @@ void main()
 
     basecolor_texcoord = texture_transform(texcoord0, texture_basecolor_matrix, texture_matrix0);
     emissive_texcoord = texture_transform(texcoord0, texture_emissive_matrix, texture_matrix0);
-#if DEBUG_TEXCOORD
-    original_texcoord = texcoord0;
-#endif
 
     vertex_color = diffuse_color;
 }
diff --git a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl
index 47d6c5e1956695477c97fc3465fec98793a41766..35ccc65a8edb5837edc73d1f67941960cf76f6cb 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl
@@ -57,9 +57,6 @@ in vec2 basecolor_texcoord;
 in vec2 normal_texcoord;
 in vec2 metallic_roughness_texcoord;
 in vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-in vec2 original_texcoord;
-#endif
 
 in vec4 vertex_color;
 
@@ -176,10 +173,6 @@ void main()
 #endif
 
     vec3 col = vertex_color.rgb * basecolor.rgb;
-#if DEBUG_TEXCOORD
-    vec3 texcoord_color = vec3(mod(original_texcoord, 1.0), 0);
-    col = texcoord_color;
-#endif
 
     vec3 vNt = texture(bumpMap, normal_texcoord.xy).xyz*2.0-1.0;
     float sign = vary_sign;
@@ -272,9 +265,6 @@ in vec3 vary_position;
 
 in vec2 basecolor_texcoord;
 in vec2 emissive_texcoord;
-#if DEBUG_TEXCOORD
-in vec2 original_texcoord;
-#endif
 
 in vec4 vertex_color;
 
@@ -302,10 +292,6 @@ void main()
 #endif
 
     color = vertex_color.rgb * basecolor.rgb;
-#if DEBUG_TEXCOORD
-    vec3 texcoord_color = vec3(mod(original_texcoord, 1.0), 0);
-    color = texcoord_color;
-#endif
 
     // emissiveColor is the emissive color factor from GLTF and is already in linear space
     vec3 colorEmissive = emissiveColor;
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index 6426512d5f85c4f4b183c7b980c7c223e3b464f3..341f94241aebc54f390bcf112c369e8f71e1d091 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -682,7 +682,6 @@ void settings_setup_listeners()
     setting_setup_signal_listener(gSavedSettings, "RenderScreenSpaceReflections", handleReflectionProbeDetailChanged);
 	setting_setup_signal_listener(gSavedSettings, "RenderShadowDetail", handleSetShaderChanged);
 	setting_setup_signal_listener(gSavedSettings, "RenderDeferredSSAO", handleSetShaderChanged);
-	setting_setup_signal_listener(gSavedSettings, "RenderDebugTexcoord", handleSetShaderChanged);
 	setting_setup_signal_listener(gSavedSettings, "RenderPerformanceTest", handleRenderPerfTestChanged);
 	setting_setup_signal_listener(gSavedSettings, "ChatFontSize", handleChatFontSizeChanged);
 	setting_setup_signal_listener(gSavedSettings, "ChatPersistTime", handleChatPersistTimeChanged);
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index b866cedaaaef9da367d7ff25e360a11ca340eb65..f99dac6ed64b8fe7a1961b6c9b243ff082ab7c4e 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -1321,10 +1321,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
         gDeferredPBROpaqueProgram.mShaderFiles.push_back(make_pair("deferred/pbropaqueF.glsl", GL_FRAGMENT_SHADER));
         gDeferredPBROpaqueProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
         gDeferredPBROpaqueProgram.clearPermutations();
-        if (gSavedSettings.getBOOL("RenderDebugTexcoord"))
-        {
-            gDeferredPBROpaqueProgram.addPermutation("DEBUG_TEXCOORD", "1");
-        }
         
         success = make_rigged_variant(gDeferredPBROpaqueProgram, gDeferredSkinnedPBROpaqueProgram);
         if (success)
@@ -1361,10 +1357,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
         gHUDPBROpaqueProgram.mShaderLevel = mShaderLevel[SHADER_DEFERRED];
         gHUDPBROpaqueProgram.clearPermutations();
         gHUDPBROpaqueProgram.addPermutation("IS_HUD", "1");
-        if (gSavedSettings.getBOOL("RenderDebugTexcoord"))
-        {
-            gHUDPBROpaqueProgram.addPermutation("DEBUG_TEXCOORD", "1");
-        }
 
         success = gHUDPBROpaqueProgram.createShader(NULL, NULL);
  
@@ -1408,10 +1400,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
         {
             shader->addPermutation("HAS_SUN_SHADOW", "1");
         }
-        if (gSavedSettings.getBOOL("RenderDebugTexcoord"))
-        {
-            shader->addPermutation("DEBUG_TEXCOORD", "1");
-        }
 
         shader->mShaderLevel = mShaderLevel[SHADER_DEFERRED];
         success = make_rigged_variant(*shader, gDeferredSkinnedPBRAlphaProgram);
@@ -1444,10 +1432,6 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
         shader->clearPermutations();
 
         shader->addPermutation("IS_HUD", "1");
-        if (gSavedSettings.getBOOL("RenderDebugTexcoord"))
-        {
-            shader->addPermutation("DEBUG_TEXCOORD", "1");
-        }
 
         shader->mShaderLevel = mShaderLevel[SHADER_DEFERRED];
         success = shader->createShader(NULL, NULL);
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 04dde696d5b02bfe04c321dc6a58648bced24ada..b8515cb096ff3080ea403b81cd54c487736a633a 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -2843,16 +2843,6 @@ function="World.EnvPreset"
            function="Advanced.ToggleInfoDisplay"
            parameter="texture anim" />
         </menu_item_check>
-        <menu_item_check
-         label="Texture Coordinates"
-            name="RenderDebugTexcoord">
-            <menu_item_check.on_check
-             function="CheckControl"
-             parameter="RenderDebugTexcoord" />
-            <menu_item_check.on_click
-             function="ToggleControl"
-             parameter="RenderDebugTexcoord" />
-        </menu_item_check>
         <menu_item_check
          label="Texture Priority"
          name="Texture Priority">