summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1
AgeCommit message (Collapse)Author
2025-04-15Merge pull request #3896 from williamweaver/fix/tonemap-hdr-blendJonathan "Geenz" Goodman
Refactor tonemap blending to preserve HDR detail during mix
2025-04-11Fix(Tonemap): Correct blend logic to preserve HDR detailWilliam Weaver
The blending operation for the `tonemap_mix` uniform in `postDeferredTonemap.glsl` incorrectly used a prematurely clamped color value as the source for the linear mix target. Specifically, the exposed HDR input color was clamped to the [0, 1] LDR range before being used in the `mix()` function when `tonemap_mix < 1.0`. This premature clamping resulted in the loss of High Dynamic Range (HDR) detail in highlights during the blend operation. As `tonemap_mix` was reduced, instead of smoothly blending towards the linear scene representation, clipped highlights were incorrectly reintroduced. This commit modifies the `toneMap` and `toneMapNoExposure` functions to correct this logic: 1. The original linear input color is preserved before exposure/processing. 2. The appropriate exposure factor is calculated and applied separately. 3. The chosen tone mapping operator is applied to the exposed color, storing the result. 4. The `mix()` function now correctly blends between the appropriately scaled, *unclamped* linear input color and the fully tone-mapped result. 5. The final clamp to the [0, 1] LDR range is applied *after* the blend operation. This change ensures that HDR information is preserved throughout the blending process, resulting in a smoother, more perceptually correct visual transition as `tonemap_mix` is adjusted. While the effect is nuanced, it is noticeable in bright highlights; with the legacy code, these highlights appeared visibly clipped and less intense during the blend, whereas the corrected code allows them to retain their peak brightness and detail more accurately. This makes the `tonemap_mix` control more intuitive, behaving as a true intensity blend for the tone mapping effect without introducing clipping artifacts. The computational cost is negligible.
2025-03-21Dynamic Probe Allocation (#3787)Jonathan "Geenz" Goodman
* #3788 Support dynamic probe allocation. * #3738 Mitigate probe flashing * #3735 Mitigate realtime probes flashing
2025-03-11#3409 Make maximum probe count adjustable. (#3709)Jonathan "Geenz" Goodman
* #3409 Make probe count adjustable to better accomodate low VRAM scenarios
2025-03-05AMD NaN and inf propagation mitigation - #3663 (#3664)Jonathan "Geenz" Goodman
#3663 On AMD, the world may be rendered in really strange colors.
2025-02-11Additional water fixes and tweaks. (#3524)Jonathan "Geenz" Goodman
* Incorporation of feedback for #3456
2025-02-07Water Exclusion Surfaces (#3517)Jonathan "Geenz" Goodman
* #3455 Add support for water exclusion surfaces
2025-01-30#3456 Water improvements to get us closer to 6.6.17 (#3490)Jonathan "Geenz" Goodman
* A lot of tweaking for water. * Get water much closer to 6.6.17. This won't produce 1:1 results, but it should be much closer to where we once were.
2024-12-03Additional tweaks to get skies closer to 6.6.17 in classic mode. (#3202)Jonathan "Geenz" Goodman
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-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-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-09-04Merge remote-tracking branch 'origin/release/2024.08-DeltaFPS' into developBrad Linden
2024-09-03#1852 Fix for some visual corruption caused by divide by zero in lighting ↵Dave Parks
functions (#2488)
2024-08-30Introduce Khronos Neutral tonemapper as new default along with debug options ↵Rye Mutt
to control tonemap mix (#2464) (#2468)
2024-08-29Integrate SMAA and rework post process chain for better visual qualityRye Mutt
Add SMAA buffer generation passes Add quality levels for both FXAA and SMAA Separate gamma correction and tonemapping for effects that require linear-but-tonemapped inputs Move application of noise to final render pass to screen to avoid damaging other post process effects
2024-08-24Improve FXAA quality and performance when GL version is greater then 4Rye Cogtail
Adds gather4 support under GLSL 4.0+
2024-08-24Add Contrast Adaptive Sharpening post process effect(#2399)Rye Mutt
2024-08-22Merge remote-tracking branch 'origin/release/2024.06-atlasaurus' into ↵Brad Linden
release/2024.08-DeltaFPS
2024-08-22#2397 Sanity clamp haze contribution to avoid NaN like blowouts. (#2402)Dave Parks
2024-08-06secondlife/viewer#1883: Local-only PBR terrain paintmap with developer toolsCosmic Linden
2024-07-02viewer#1907 Shader initialization errorAndrey Kleshchev
2024-07-01Merge pull request #1882 from secondlife/v-1847cosmic-linden
secondlife/viewer#1847: Fix negative UV scale inverting normal texture lighting for PBR materials and PBR terrain
2024-07-01secondlife/viewer#1847: Fix wrong lighting for negative texture scale on PBR ↵Cosmic Linden
materials and PBR terrain
2024-06-271836 dont store texture in system memory unless absolutely necessary (#1843)Dave Parks
* #1836 Texture memory usage overhaul. Much decrufting - don't keep a copy of textures in system memory - use GPU to downrez textures instead of reloading from cache - use GPU to generate brightness/darkness bumpmaps
2024-06-21#1769 gltf optimization pass (#1816)Dave Parks
#1814 and #1517 Fix mirror update rate and occlusion culling
2024-06-141736 audit texture image unit usage on os x (#1739)Dave Parks
* #1736 Remove some unused samplers from glsl files and refactor shader manager to assume 16 texture image units and 4 indexed texture units all the time.
2024-06-13secondlife/viewer#907: Review feedbackCosmic Linden
2024-06-12Fix whitespace pre-commit hook failuresBrad Linden
2024-06-12Merge remote-tracking branch 'origin/project/gltf_development' into ↵Brad Linden
brad/maint-a-merge-to-gltf-dev # Conflicts: # indra/newview/gltf/primitive.cpp
2024-06-11Merge remote-tracking branch 'origin/release/maint-a' into ↵Brad Linden
project/gltf_development
2024-06-11#1718 Add GLTF support for multiple texcoords (#1720)Dave Parks
* Fix for GLTF MeshPrimitiveModes test
2024-06-11#1687 Add support for KHR_texture_transform (#1717)Dave Parks
2024-06-11Trim remaining trailing whitespaces after #1695Andrey Lihatskiy
2024-06-11Clean up line endings that got mangled up during last mergeAnsariel
2024-06-11Merge branch 'main' of https://github.com/secondlife/viewer into ↵Ansariel
DRTVWR-600-maint-A # Conflicts: # indra/llappearance/llavatarappearance.h # indra/llimage/llimage.cpp # indra/llmath/llvolume.cpp # indra/llmath/llvolume.h # indra/llprimitive/llgltfmaterial.h # indra/llrender/llrendertarget.cpp # indra/llrender/llshadermgr.cpp # indra/newview/lldynamictexture.cpp # indra/newview/llenvironment.cpp # indra/newview/llfetchedgltfmaterial.cpp # indra/newview/llfloaterimagepreview.cpp # indra/newview/llfloaterimagepreview.h # indra/newview/llfloaterregioninfo.cpp # indra/newview/llfloaterregioninfo.h # indra/newview/llmaniprotate.cpp # indra/newview/llmaniptranslate.cpp # indra/newview/llpanelvolume.cpp # indra/newview/llselectmgr.cpp # indra/newview/llselectmgr.h # indra/newview/llsurface.cpp # indra/newview/llsurface.h # indra/newview/llsurfacepatch.cpp # indra/newview/lltexturectrl.cpp # indra/newview/lltexturectrl.h # indra/newview/lltinygltfhelper.cpp # indra/newview/llviewertexture.cpp # indra/newview/llviewerwindow.cpp # indra/newview/llviewerwindow.h # indra/newview/llvlcomposition.cpp # indra/newview/llvlcomposition.h # indra/newview/llvocache.cpp # indra/newview/llvovolume.cpp # indra/newview/pipeline.cpp
2024-06-10Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into ↵Brad Linden
project/gltf_development
2024-06-10Post-merge - trim trailing whitespaceAndrey Lihatskiy
2024-06-10#1654 generate normals and tangents according to gltf specification (#1662)Dave Parks
* Disable unloading of objects in background. * Add unlit GLTF shader variant
2024-06-05#1527 Improve performance on Apple silicon (#1632)Dave Parks
2024-06-04Fixup mix->pbr_mix after merge.Brad Linden
2024-06-04Merge remote-tracking branch 'origin/release/materials_featurette' into ↵Brad Linden
project/gltf_development
2024-06-04#989 Fix for blurry terrain on Mac (#1633)Brad Linden
Co-authored-by: Dave Parks <davep@lindenlab.com>
2024-06-04Fix for AMD not being able to load pbrmetallicroughnessV. (#1620)Jonathan "Geenz" Goodman
2024-06-04#1614 Fix for moire pattern in specular highlights. Incidental cleanup.RunitaiLinden
2024-05-29#1530 Increase joint limit for GLTF Assets (#1582)Dave Parks
* Migrate GLTF scene rendering to its own shaders * Add support for ambient occlusion map separate from metallic roughness map (or absent) * Use UBO's for GLTF joints * Better error handling of downloading GLTF assets
2024-05-28secondlife/viewer#1531: Attempt to fix PBR terrain fragment shader.Cosmic Linden
2024-05-28Remove tinygltf dependency from LL::GLTF (#1541)Dave Parks
* #1535 Image loading/saving support in boost::json driven GLTF parser * #1536 GLB Support in boost::json drvien GLTF parser
2024-05-23Merge remote-tracking branch 'origin/DRTVWR-600-maint-A' into ↵Brad Linden
brad/merge-maint-a-to-dev
2024-05-22Merge remote-tracking branch 'origin/main' into DRTVWR-600-maint-AAnsariel
# Conflicts: # autobuild.xml # indra/cmake/CMakeLists.txt # indra/cmake/GoogleMock.cmake # indra/llaudio/llaudioengine_fmodstudio.cpp # indra/llaudio/llaudioengine_fmodstudio.h # indra/llaudio/lllistener_fmodstudio.cpp # indra/llaudio/lllistener_fmodstudio.h # indra/llaudio/llstreamingaudio_fmodstudio.cpp # indra/llaudio/llstreamingaudio_fmodstudio.h # indra/llcharacter/llmultigesture.cpp # indra/llcharacter/llmultigesture.h # indra/llimage/llimage.cpp # indra/llimage/llimagepng.cpp # indra/llimage/llimageworker.cpp # indra/llimage/tests/llimageworker_test.cpp # indra/llmessage/tests/llmockhttpclient.h # indra/llprimitive/llgltfmaterial.h # indra/llrender/llfontfreetype.cpp # indra/llui/llcombobox.cpp # indra/llui/llfolderview.cpp # indra/llui/llfolderviewmodel.h # indra/llui/lllineeditor.cpp # indra/llui/lllineeditor.h # indra/llui/lltextbase.cpp # indra/llui/lltextbase.h # indra/llui/lltexteditor.cpp # indra/llui/lltextvalidate.cpp # indra/llui/lltextvalidate.h # indra/llui/lluictrl.h # indra/llui/llview.cpp # indra/llwindow/llwindowmacosx.cpp # indra/newview/app_settings/settings.xml # indra/newview/llappearancemgr.cpp # indra/newview/llappearancemgr.h # indra/newview/llavatarpropertiesprocessor.cpp # indra/newview/llavatarpropertiesprocessor.h # indra/newview/llbreadcrumbview.cpp # indra/newview/llbreadcrumbview.h # indra/newview/llbreastmotion.cpp # indra/newview/llbreastmotion.h # indra/newview/llconversationmodel.h # indra/newview/lldensityctrl.cpp # indra/newview/lldensityctrl.h # indra/newview/llface.inl # indra/newview/llfloatereditsky.cpp # indra/newview/llfloatereditwater.cpp # indra/newview/llfloateremojipicker.h # indra/newview/llfloaterimsessiontab.cpp # indra/newview/llfloaterprofiletexture.cpp # indra/newview/llfloaterprofiletexture.h # indra/newview/llgesturemgr.cpp # indra/newview/llgesturemgr.h # indra/newview/llimpanel.cpp # indra/newview/llimpanel.h # indra/newview/llinventorybridge.cpp # indra/newview/llinventorybridge.h # indra/newview/llinventoryclipboard.cpp # indra/newview/llinventoryclipboard.h # indra/newview/llinventoryfunctions.cpp # indra/newview/llinventoryfunctions.h # indra/newview/llinventorygallery.cpp # indra/newview/lllistbrowser.cpp # indra/newview/lllistbrowser.h # indra/newview/llpanelobjectinventory.cpp # indra/newview/llpanelprofile.cpp # indra/newview/llpanelprofile.h # indra/newview/llpreviewgesture.cpp # indra/newview/llsavedsettingsglue.cpp # indra/newview/llsavedsettingsglue.h # indra/newview/lltooldraganddrop.cpp # indra/newview/llurllineeditorctrl.cpp # indra/newview/llvectorperfoptions.cpp # indra/newview/llvectorperfoptions.h # indra/newview/llviewerparceloverlay.cpp # indra/newview/llviewertexlayer.cpp # indra/newview/llviewertexturelist.cpp # indra/newview/macmain.h # indra/test/test.cpp