summaryrefslogtreecommitdiff
path: root/indra/newview/pipeline.cpp
AgeCommit message (Collapse)Author
41 hoursMerge tag 'Second_Life_Release#11cd9b9-2025.05' into 2025.05Erik Kundiman
6 daysMerge pull request #3883 from williamweaver/fix/remove-duplicate-render-settingJonathan "Geenz" Goodman
Fix: Remove potentially redundant RenderAutoHideSurfaceAreaLimit sett…
6 daysMerge pull request #3911 from secondlife/mainJonathan "Geenz" Goodman
Merge 2025.03 release into develop.
13 daysAA Slowing down the viewer on Mac FIXmobserveur
AA was causing the viewer to slow down when used with hdr & emissive option ON. This commit fixes the issue, by making sure mipmap generation is inactive on the Luminance framebuffer.
14 daysFix: Remove potentially redundant RenderAutoHideSurfaceAreaLimit setting ↵William Weaver
registration This commit removes a seemingly duplicated `connectRefreshCachedSettingsSafe` call in `LLPipeline::init()` for the `RenderAutoHideSurfaceAreaLimit` setting. A duplicated registration for this setting was identified during a review of `LLPipeline::init()`. Double registration can lead to unexpected behavior, including potential CPU overhead. The duplication *may* have been introduced with commit 440c7b2 (Added CollectFontVertexBuffers feature), though this requires further confirmation. Testing Performed: After removing the duplicate registration, the `RenderAutoHideSurfaceAreaLimit` functionality was validated by ensuring the following behavior (consistent with the existing code): * A value of 0 (zero) causes all objects to appear regardless of size. * Values slightly above zero result in only small objects appearing, with all others hidden. * Increasing the value causes objects of increasing size to appear, while smaller objects remain visible. This change merits careful review to ensure it has no unintended side effects, and to confirm the accuracy of these observations from other developers.
2025-03-30Shadow options in the graphics advanced panelmobserveur
New optimisation and resolution shadow options
2025-03-29Merge branch 'main' into 2025.03Erik Kundiman
2025-03-29Revert "Temporary fix for antialiasing causing lower performance on mac"Erik Kundiman
This reverts commit faab4af12b583b48cfdd9f6e41dad7bba06c3970.
2025-03-28fix(pipeline): Remove incorrect zeroing of mRT dimensions in createGLBuffersWilliam Weaver
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
2025-03-22Merge branch 'main' into 2025.03Erik Kundiman
2025-03-22Temporary fix for antialiasing causing lower performance on macmobserveur
Water exclusion seems to be at the origin of poor performance with antilasing combind with hdr mode. We remove this from pipeline.cpp for now as a temporary fix. Technically we revert pipeline.cpp to the previous version.
2025-03-12Fixes: Add guard to prevent shadow texture resize with invalid mRT ↵William Weaver
dimensions after shader changes; **Replaces forced shader refresh with lightweight guard** This commit introduces a guard in `LLPipeline::resizeShadowTexture()` to prevent shadow texture resizing when the shadow render target (mRT) has invalid (zero) dimensions. **This replaces a previous, less efficient approach of forcing a full shader recompile whenever `RenderShadowResolutionScale` was changed in-session.** **Background and Problem:** Previously, the code forced a full shader recompile whenever `RenderShadowResolutionScale` changed in-session (after toggling advanced graphics settings like SSAO or HDR). While this “sledgehammer” approach did fix broken shadow rendering, it unnecessarily thrashed the shader cache and reset many pipeline states. **Solution:** This commit removes the forced shader recompile in favor of a guard check in `LLPipeline::resizeShadowTexture()`. The guard ensures mRT (the shadow render target) has non-zero dimensions before resizing. If mRT is zero for that frame, the resize operation is skipped, and a warning is logged. Once mRT becomes valid (usually in the next frame), the shadow texture is resized successfully without requiring a full shader refresh. **Detailed changes:** - Reverted the binding of `RenderShadowResolutionScale` to `handleSetShaderChanged`. - Restored the original `handleShadowsResized` listener for `RenderShadowResolutionScale` in `llviewercontrol.cpp`. - Added guard checks in `LLPipeline::resizeShadowTexture()` to skip resizing when `mRT->width` or `mRT->height` is zero. - Added logging statements to track how many frames are skipped. **Benefits:** - Prevents shader thrashing while still avoiding shadow corruption. - Shadows now update correctly as soon as mRT dimensions are valid. - Maintains a detailed record of frames skipped. - **Lightweight and targeted interim solution, much less disruptive than a full shader recompile.** Testing: 1. Reproduce the bug as described in the bug report (toggle SSAO, then change RenderShadowResolutionScale). 2. Verify that shadows are no longer broken after these steps. 3. Check the logs for the warning message indicating skipped frames when the bug is triggered. 4. Confirm that under normal operation (without shader changes causing mRT issues), shadow resizing works as expected without excessive warnings. Documentation: No user-facing documentation changes are needed for this interim fix. However, internal developer documentation should note this guard and the ongoing investigation into the root cause. Further Development: This guard is a temporary fix. The root cause of why mRT becomes invalid after shader changes needs to be investigated and resolved. See the bug report for detailed next steps for investigation.
2025-03-06Merge remote-tracking branch 'secondlife/release/2025.03' into 2025.03Erik Kundiman
2025-02-28#3280 Fix crashes at gFloaterToolsAndrey Kleshchev
Likely specific to headless client
2025-02-27#3627 Warn user about low memory on bad_allocAndrey Kleshchev
2025-02-18Merge commit '0679cbdec89fbd3ec470768bdf469f6a1d326859' into tmpErik Kundiman
2025-02-07Water Exclusion Surfaces (#3517)Jonathan "Geenz" Goodman
* #3455 Add support for water exclusion surfaces
2025-01-24Merge remote-tracking branch 'secondlife/release/2024.12-ForeverFPS' into ↵Erik Kundiman
2024.12-ForeverFPS
2025-01-23Fix potential undefined behavior when converting to and from glm types from ↵Rye
LLVector3/4 and fall back mul_mat4_vec3 to scalar implementation to attempt crash mitigation (#3339)
2025-01-22Merge remote-tracking branch 'secondlife/release/2024.12-ForeverFPS' into ↵Erik Kundiman
2024.12-ForeverFPS
2025-01-21#3442 Crash at LLDrawable::isStateMaxim Nikolenko
2025-01-20Merge remote-tracking branch 'secondlife/release/2024.12-ForeverFPS' into ↵Erik Kundiman
2024.12-ForeverFPS
2025-01-02#3311 RenderSkyAutoAdjustLegacy does not engage tonemapperAndrey Kleshchev
2024-12-15Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-12-10Fix crashes from shader load failures under RenderMaxOpenGLVersion ↵Rye
3.1/3.2/3.3 (#3184)
2024-12-11Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-12-10viewer#3169 Legacy settings should no longer be automatically convertedAndrey Kleshchev
2024-12-10Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-12-06#3219 Revert default exposure thresholds to DeltaFPS values (#3228)Dave Parks
2024-12-06Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-12-05viewer-private#330 Fix LLCachedControl for vintageAndrey Kleshchev
2024-12-03Additional tweaks to get skies closer to 6.6.17 in classic mode. (#3202)Jonathan "Geenz" Goodman
2024-12-01Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-11-28#3170 Fix for tonemapping not working with PBR skies.Jonathan "Geenz" Goodman
2024-11-29viewer#3170 Fix tonemaping sliderAndrey Kleshchev
At the moment slider is in general settings, not per environment
2024-11-26Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-11-25Drop emissive on old Intel GPUs (#3110)Jonathan "Geenz" Goodman
* #3103 Add the ability to disable the emissive buffer for older GPUs with low memory bandwidth. * #3135 Add a "vintage" mode for slower GPUs * #2719 Fix for skies being overbrightened * #2632 Do not apply tonemapping on legacy skies
2024-11-20Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-11-19brad/2744 handle shader errors (#3105)Brad Linden
* Partial solution to secondlife/viewer#2744 crash with better error handling. Handles shader compile errors better, and should turn crash into an LL_ERRS assertion failure. Strengthed more assertions and improved shader error line numbers * Even more error handling to get a handle on crash secondlife/viewer#2744 * Improved GLSL correctness on Intel chips that lack OpenGL 4.6 support. secondlife/viewer#2744 * Removed non-working fallback code for gDeferredPostProgram * Fixed incorrect llmax call
2024-11-13Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-11-122590 mac intel and radeon pro 5300m horrible fps 2 (#3030)Dave Parks
* OpenGL 3.3 compatibility pass. Fix for FBO driven downscaling corrupting textures. * Increase maximum texture bias, immediately scale down when textures are loaded higher resolution than desired * #2590 Fix for some frame stalls on Intel Macs
2024-10-18Merge branch 'main' into 2024.09-ExtraFPSErik Kundiman
2024-10-18Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-10-18Merge remote-tracking branch 'secondlife/release/2024.09-ExtraFPS' into ↵Erik Kundiman
2024.09-ExtraFPS
2024-10-12Preprocess eTextureType like sGLTextureTypeErik Kundiman
(cause eTextureType seems to have been designed to mirror sGLTextureType) otherwise you'd get a GL error of invalid enum of the first argument for glTexImage2D.
2024-10-01Add early-out in LLPipeline::applyCAS() if gCASProgram failed to compile. ↵Brad Linden
(#2760) fix secondlife/viewer#2756
2024-09-26#2411 Allow disabling and enabling LLFontVertexBufferAndrey Kleshchev
for testing purposes
2024-09-23Fix sky settings with reflection probe ambiance of 0 still receiving ↵Brad Linden
tonemapping (#2659) Co-authored-by: Rye Cogtail <rye@lindenlab.com>
2024-09-18Remove quads rendering mode entirely (#2593)Ansariel Hiller
2024-09-17Suppress mapBuffer warnings. (#2584)Dave Parks