summaryrefslogtreecommitdiff
path: root/indra/llrender/llimagegl.cpp
AgeCommit message (Collapse)Author
2026-07-22A few OpenGL state fixes provided by Rye from the Alchemy Viewer.Jonathan "Geenz" Goodman
2026-07-22Revert "Merge pull request #5829 from secondlife/geenz/texture-quality"Jonathan "Geenz" Goodman
This reverts commit 6b4e3f3288ec1e9917cecd862a7a52945e5b4db2, reversing changes made to 99ab6316b4ae9058f22d9f57d21e795ca45797fd.
2026-07-22Revert "Merge pull request #5982 from secondlife/geenz/texture-streaming-tweaks"Jonathan "Geenz" Goodman
This reverts commit 3d465f6c966f0a2fcfd5d3c9effb6ce20c2754c8, reversing changes made to f2c356fc7130ce5e38b994dcfa1e210609b458b9.
2026-07-22Revert "Geenz/texture loading speed (#5985)"Jonathan "Geenz" Goodman
This reverts commit a937b237de3651e79cdb517f14381a5bdd4c844b.
2026-07-09Geenz/texture loading speed (#5985)Jonathan "Geenz" Goodman
* Add more controls for texture loading budgets. Should yield much faster loading within a given FPS target - should generally self regulate depending on your framerate. * Harden texture pipeline against stalls and OOM. Generally makes texture loading faster, at the expense of some budgeting (which we weren't doing a great job at anyways).
2026-07-07Kill the system memory stuff - it's not relevant to the new texture streaming.Jonathan "Geenz" Goodman
2026-07-07Get some more wins for overall downrezzing and minimizing thrashing.Jonathan "Geenz" Goodman
Also make sure that probes don't stamp - that creates thrashing when distant probes render. We're at a low enough resolution on those things that higher mips are likely to go unnoticed, and we bake them frequently enough that we can pick up lower mips when we actually need them.
2026-05-22A few OpenGL state fixes provided by Rye from the Alchemy Viewer.Jonathan "Geenz" Goodman
2026-05-19More high pressure and quality changes.Jonathan "Geenz" Goodman
New "high res" bubble near the camera, minimum discard settings, and discard scaling.
2026-05-12Rework texture streaming and tracking.Jonathan "Geenz" Goodman
This is a big one: - Reworks the discard signal almost entirely. Now has a normalized 0..1 discard signal: distance x size x channel exponent, floored by staleness and background app state. Shaped by VRAM pressure. - Textures can now scale down to the smallest GPU mip (1×1), independent of the codec's encoded mip count. - Terrain texture LOD now works. Useful for 2K textures and PBR on terrain. Based upon camera distance to nearest terrain patch. - New texture quality setting. Low/Medium/High/Ultra - Caps texture resolution on Low to 1024, and otherwise shifts the discard signal around. Makes distance based texture LOD work a lot more predictably. - We now track last bind state for textures, and discard accordingly. We progressively discard based upon last bind time. - Avatar textures get a residency boost to stay loaded in VRAM longer under pressure.
2026-02-06#5380 Fix crash in LLImageGL::analyzeAlpha()Andrey Lihatskiy
2025-10-01#4773 Crash on sub_image_linesAndrey Kleshchev
Just caught it and discard_level is somehow 7, which seems like it resulted in src going out of bounds, which crashed glTexSubImage2D
2025-10-01#4758 Extra logging to track discard 6Andrey Kleshchev
Plus clamped some values and preventing decode from starting
2025-08-22Fix large performance drop when enabling AA on macOS/lower end GPU hardwareRye
2025-07-09#4296 Crash at renderMorphMasksAndrey Kleshchev
2025-02-14Switch from GL_RGB16F to GL_R11F_G11F_B10F for probes (#3562)Jonathan "Geenz" Goodman
* #3561 Switch from GL_RGB16F to GL_R11F_G11F_B10F for reflection probes to help reduce memory bandwidth and VRAM pressure.
2025-02-13Fix xcode16 build errorsAndrey Lihatskiy
2024-12-16#3295 Crash scaling texture down (#3296)Andrey Kleshchev
2024-12-12#2590 Radeon mac optimization pass (#3277)Dave Parks
- Skip updating of reflection probes that are not the default probe when probe coverage is set to "None" - enable RenderAppleUseMultGL and disable occlusion culling on Macs with AMD GPUs - Reduce the number of texture decode threads on Macs with intel cpus. - Move texture deletion to LLImageGL::updateClass and prevent textures from staying resident in vram longer than 3 frames - Disable SSAO by default on Macs with intel CPUs
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-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-11-08#2637 Revert to the previous alpha analysis to maintain legacy content ↵Jonathan "Geenz" Goodman
parity. (#3061)
2024-10-20viewer#2741 Don't reallocate image conversion buffer all the timeAndrey Kleshchev
2024-10-05viewer#2741 Sligtly better logging for a crashAndrey Kleshchev
2024-09-10Profile guided optimizationsRunitaiLinden
2024-08-29Merge remote-tracking branch 'origin/release/2024.08-DeltaFPS' into developBrad Linden
2024-08-27#2428 Fix for crash when applying PBR material (#2430)Dave Parks
Also attempt to fix some occasional bad texture memory tracking.
2024-08-24Fix mac crash on startup due to missing types from enumRye Cogtail
2024-08-22Do deprecated texture swizzle on GPU using GL texture swizzling functions ↵Rye Mutt
(#2389) * Use GL texture swizzling instead of scratch buffer for deprecated formats when GL 3.3 is available Fix crash when GL texture compression is enabled * Fix UI font atlas being eligible for texture compression
2024-08-21Fix crash on Intel GPUs (or anywhere OpenGL compatibility profile is used). ↵Dave Parks
(#2387)
2024-08-21Improve accuracy of texture memory tracking (#2371)Rye Mutt
* Fix alloc_tex_image to account for more missing texture memory Change alloc_tex_image calls to pass internal format to properly account for used image type * Fix scaleDown passing primary format in place of internal format to glTexImage2D * Make texture debug view and texture bias calculation consistent and remove double accounting for render target textures
2024-07-08Re-enable compiler warnings C4244 and C4396 except for lltracerecording.h ↵Ansariel
and llunittype.h for now
2024-07-03#1870 Tune up for better experience on integrated intel with low memory (#1872)Dave Parks
* More deterministic vsize calculation. Add control for choosing downscale method. * Quick hack to make GLTF preview work again
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-10Re-enable compiler warnings C4018, C4100, C4231 and C4506Ansariel
2024-05-22Fix line endlingsAnsariel
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
2024-05-07secondlife/viewer#1333 BOOL to bool conversion leftovers: ternariesAlexander Gavriliuk
2024-05-07viewer#799 Account for reflection probes' memoryAndrey Kleshchev
2024-04-29#824 Process source files in bulk: replace tabs with spaces, convert CRLF to ↵Andrey Lihatskiy
LF, and trim trailing whitespaces as needed
2024-03-27Merge branch 'main' into DRTVWR-600-maint-AAndrey Lihatskiy
# Conflicts: # indra/newview/llappviewer.cpp # indra/newview/llfloaterchangeitemthumbnail.cpp # indra/newview/llpanelprofile.cpp # indra/newview/llselectmgr.cpp # indra/newview/lltexturectrl.cpp # indra/newview/lltexturectrl.h # indra/newview/lltooldraganddrop.cpp # indra/newview/llviewerdisplay.cpp # indra/newview/llvovolume.cpp
2024-03-05SL-17896 Don't crash silently if files are missing or out of memoryAndrey Kleshchev
Under debug LL_ERRS will show a message as well, but release won't show anything and will quit silently so show a notification when applicable.
2024-02-20Convert BOOL to bool in llrenderAnsariel
2024-02-18misc: BOOL to boolLars Næsbye Christensen
2024-01-11Rename OS X to macOS, mostly in commentsLars Næsbye Christensen
We only support 10.13+ now, and it's been called macOS since 10.12. References in code to older versions are unchanged.
2023-12-21SL-20743 Use LLMutex in LLImageBase for internal data thread-safetyAlexander Gavriliuk
2023-09-28Fix integer overflow when framebuffers are extremely high resolution ↵Rye Mutt
resulting in INT_MAX texture bias (#393)
2023-07-17Merge remote-tracking branch 'origin/main' into DRTVWR-559Brad Linden
2023-04-05SL-19331: Move media updates off-thread on select hardware (#153)cosmic-linden
* SL-19331: Have media updates on the LLImageGL thread even when texture updates are on the main thread. Add config. Off-thread media updates seem work best performance-wise when using glTexImage2D, not sub_image_lines. Otherwise, there are lots of main thread stalls. * SL-19331: Bump featuretable * SL-19331: Cleanup, annotate comment
2023-03-21SL-19434: Fix texture issues with minimap, but keep performance from SL-19331Cosmic Linden