diff options
author | William Weaver <paperwork.resident@gmail.com> | 2025-03-28 04:28:36 +0300 |
---|---|---|
committer | William Weaver <paperwork.resident@gmail.com> | 2025-03-28 04:28:36 +0300 |
commit | e1ebb33ab2966a20b63741dd84a0826e82b6a807 (patch) | |
tree | df39b8331f9056f4f56441caa667e88d4acbfb81 /indra/llfilesystem | |
parent | e18577274e393b177d18296f30ef730433a8ba1d (diff) |
fix(pipeline): Remove incorrect zeroing of mRT dimensions in createGLBuffers
Resolves the root cause of shadow rendering failures when changing RenderShadowResolutionScale immediately after modifying other graphics settings (e.g., SSAO, HDR).
Investigation revealed that LLPipeline::createGLBuffers, which is called during certain graphics setting changes that require full buffer recreation, contained lines that incorrectly set mRT->width and mRT->height to zero *after* the call to allocateScreenBuffer had already established the correct dimensions.
This created a state inconsistency. If RenderShadowResolutionScale was changed immediately following the graphics setting change, the subsequent call to LLPipeline::resizeShadowTexture (triggered via handleShadowsResized) would read these incorrect zero dimensions from mRT. This led to failed shadow buffer allocation (allocateShadowBuffer(0, 0)) and resulted in corrupted or missing shadows.
This commit removes the erroneous mRT->width = 0 and mRT->height = 0 lines from the end of createGLBuffers. This ensures that the render target dimensions remain valid after buffer recreation.
With this fix, resizeShadowTexture now correctly reads the valid screen dimensions immediately following a graphics setting change and successfully resizes the shadow buffers without delay or error. This eliminates the need for previous workarounds like guard conditions or forced shader recompiles.
Ref: #3719
Diffstat (limited to 'indra/llfilesystem')
0 files changed, 0 insertions, 0 deletions