diff options
| -rw-r--r-- | indra/newview/llviewercontrol.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 25 | 
2 files changed, 25 insertions, 4 deletions
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 1f5ac61040..598ad89907 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -809,9 +809,7 @@ 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); -	// Ensure shader update on shadow resolution scale change for correct shadow rendering. -	// setting_setup_signal_listener(gSavedSettings, "RenderShadowResolutionScale", handleShadowsResized); // Original line commented out -	setting_setup_signal_listener(gSavedSettings, "RenderShadowResolutionScale", handleSetShaderChanged); +    setting_setup_signal_listener(gSavedSettings, "RenderShadowResolutionScale", handleShadowsResized);      setting_setup_signal_listener(gSavedSettings, "RenderGlow", handleReleaseGLBufferChanged);      setting_setup_signal_listener(gSavedSettings, "RenderGlow", handleSetShaderChanged);      setting_setup_signal_listener(gSavedSettings, "RenderGlowResolutionPow", handleReleaseGLBufferChanged); diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 18dd694246..691d155a3c 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -121,7 +121,7 @@  #include "SMAAAreaTex.h"  #include "SMAASearchTex.h" - +#include "llerror.h"  #ifndef LL_WINDOWS  #define A_GCC 1  #pragma GCC diagnostic ignored "-Wunused-function" @@ -727,6 +727,29 @@ void LLPipeline::requestResizeShadowTexture()  void LLPipeline::resizeShadowTexture()  { +    // A static counter to keep track of skipped frames +    static int sSkippedFrameCount = 0; + +    if (!mRT || mRT->width == 0 || mRT->height == 0) +    { +        sSkippedFrameCount++; +        LL_WARNS("Render") << "Shadow texture resizing aborted: render target dimensions invalid. Skipped " +                           << sSkippedFrameCount << " frame(s) so far." << LL_ENDL; +        return; +    } + +    // If there were skipped frames before mRT became valid, log that information. +    if (sSkippedFrameCount > 0) +    { +        LL_INFOS("Render") << "Render target now valid after " +                           << sSkippedFrameCount << " skipped frame(s)." << LL_ENDL; +        sSkippedFrameCount = 0; +    } + +    LL_WARNS() << "LLPipeline::resizeShadowTexture() called." << LL_ENDL; +    LL_INFOS() << "Resizing shadow texture. mRT->width = " +               << mRT->width << " mRT->height = " << mRT->height << LL_ENDL; +      releaseSunShadowTargets();      releaseSpotShadowTargets();      allocateShadowBuffer(mRT->width, mRT->height);  | 
