summaryrefslogtreecommitdiff
path: root/indra/newview/llviewertexturelist.cpp
AgeCommit message (Collapse)Author
2026-07-22Revert "Merge pull request #5667 from ↵Jonathan "Geenz" Goodman
secondlife/geenz/texture-channel-cherrypick" This reverts commit 7f110d9fb54d050e0b25ea65294a53d2595fc89b, reversing changes made to 5f91a3faf3ef0b9d0a6c3424fff119992dc0822a.
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 dead byte ledger.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-07-06Give avatars (and attachments) a bonus so they appear crisp more often.Jonathan "Geenz" Goodman
2026-07-06Get things working a little more consistently between BP and PBR. Also add ↵Jonathan "Geenz" Goodman
some bias controls for the texel-to-pixel ratio based streaming.
2026-07-06Move over to a pixels to texels ratio to drive texture resolution.Jonathan "Geenz" Goodman
2026-05-29Add watermark driven discards.Jonathan "Geenz" Goodman
Does a much better job of staying within the memory budget.
2026-05-19Rework VRAM controller and bubble interaction — gate iteration on ↵Jonathan "Geenz" Goodman
pressure, halve last-ditch floor inside bubble.
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-18Break out texture channel priorities.Jonathan "Geenz" Goodman
2026-05-18Add a texture "bubble" near the camera to ensure high res textures closer to ↵Jonathan "Geenz" Goodman
the camera.
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-04-17Add texture streaming "channels" (#5442)Jonathan "Geenz" Goodman
* Add channel based streaming priority. * Lessen the aggressiveness of the discards.
2026-04-03#5612 Fix fast cache freezing main threadAndrey Kleshchev
2026-03-03#5426 Fix crash in LLPointer<LLImageGL>::notNullAndrey Lihatskiy
2026-02-15#5356 Fix fast texture cache's mutex stall #2Andrey Kleshchev
2025-11-12Fix crash in updateImagesCreateTextures accessing potentially freed image ↵Hecklezz
pointer Signed-off-by: Hecklezz <tj8@live.com.au>
2025-06-10Fix fast cache ignoring its time constraint (#4237)Ansariel Hiller
2025-05-28Merge remote-tracking branch 'origin/main' into geenz/2025.04-to-developJonathan "Geenz" Goodman
2025-05-05updateImageDecodePriority - Avoid Long Face Loop (#4019, #4021)TommyTheTerrible
* updateImageDecodePriority - Avoid Long Face Loop To avoid running a long loop on thousands of faces, some textures were being set to a BOOST level to avoid the updateImageDecodePriority function entirely but this was causing many of them to never be deleted over the course of a user's travels. Instead of relying on BOOST, this commit changes the logic of the texture channel loop such that the face loop will only run if the number of faces is below the threshold. To do this, we move the face_count incrementing outside of the face loop into the channel loop and increment it using the getNumFaces function instead. We then check the face_count against the maximum number of faces we want to check and if it exceeds the number we set the number of faces for the face loop to check down to zero. This avoids branch prediction misses and the long face loop issue. Later, if the face_count is above the threshold, we assign the virtual size to the maximum. I personally believe the max_faces_to_check should be lower than 1024, but I left that value in for continuity. I use 64 faces as my max on my compiled version of the viewer without any noticeable issues for memory use. * updateImageDecodePriority - Face Loop Increment Swap Looks like compilers like knowing the incrementing in the for loop information for optimizations and parallelization. Sorry for the tiny commit. * updateImageDecodePriority - Suggested Cleanup Remove trailing white-space. Co-authored-by: Andrey Lihatskiy <alihatskiy@productengine.com>
2025-04-01Merge branch 'release/2025.03' into release/2025.04Jonathan "Geenz" Goodman
2025-03-31#3809 Fix J2C UploadAndrey Kleshchev
2025-03-27Avoid recalculating pixel area when possibleAndrey Kleshchev
2025-03-21#3364 Fix a case of excessive texture updatesAndrey Kleshchev
when bias fluctuates a bit. Make bias' effect a bit more gradual.
2025-03-06#3673 Crash at updateImageDecodePriorityAndrey Kleshchev
2025-03-05#3611 Decrease TextureScaleMinAreaFactorAndrey Kleshchev
2025-02-19Merge branch release/2025.03Andrey Kleshchev
# Conflicts: # indra/newview/llmeshrepository.cpp # indra/newview/llmeshrepository.h
2025-02-12#3210 Fix for "Texture will be downscaled" log message happening too oftenMaxim Nikolenko
2025-02-07Water Exclusion Surfaces (#3517)Jonathan "Geenz" Goodman
* #3455 Add support for water exclusion surfaces
2025-02-05viewer#2780 Speed up terrain loading on teleportAndrey Kleshchev
Terrain was arriving and processing too late resulting in issues like "Lower terrain material incorrectly shown momentarily"
2025-01-16#3364 Fix update rate being stuck high due to biasAndrey Kleshchev
if bias stays unchanged at 4.f, there is no reason to keep refreshing at high rate.
2024-12-05#3210 Fix for "Texture will be downscaled" happening too often. (#3212)Dave Parks
2024-12-04#3106 Lower maximum texture bias back to 4, reintroduce camera importance ↵Dave Parks
texture scaling (#3207)
2024-11-19Crash at getDiscardLevel()Andrey Kleshchev
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-25viewer#2875 Proportionally agressive vram cleanupAndrey Kleshchev
2024-09-04Merge remote-tracking branch 'origin/release/2024.08-DeltaFPS' into developBrad Linden
2024-09-04#2482 Low end NVIDIA compatibility pass (#2486)Dave Parks
- Use GL_NVX_gpu_memory_info when available - Disable transparent water on Mid+ and lower - Adjust GPU benchmark to better tell the truth - Texture bias tune up - viewer-private/#277 - Report foreground_time in viewer stats
2024-08-28#2438 Address frame stalls in updateImageDecodePriorityRunitaiLinden
2024-08-27#2431 Fix for redundant searching for pixeismall.j2c causing frame stallsRunitaiLinden
2024-08-23#2388 Texture downrezzing tune up. (#2414)Dave Parks
- Hold onto unreferenced textures for 30 seconds. - Don't downres unless memory is low - Downres when viewer is backgrounded.
2024-08-20#2315 Ensure textures are deleted when they are no longer referenced. (#2343)Dave Parks
* #2315 WIP -- Clean up deletion rules in texture list. Incidental decruft. * Touch up assertions. * Move mLastReferencedTimer to LLViewerMediaTexture since it's no longer used by LLViewerTexture
2024-08-12Interim fix for particles no longer rezzing properly. (#2227)Beq Janus
In a previous PR, I noted: Note this change moves the calcPixelArea() call to the top BEFORE we user getPixelArea(). Either that call is entirely redundant (i.e. if calc was called earlier in the frame) or we were using the stale pixelArea (one frame behind). If the former is true then it might be faster to just do an AABB frustum check. It turns out that by moving the calcPixelArea to the "correct place", we break the rezzing of particles which are then being downsampled as a result. Moving this back to the "incorrect" location undoes the immediate effect but this whole scenario may need to be re-examined.
2024-08-02Crash at LLViewerTexture::updateClass()Andrey Kleshchev
2024-07-31viewer#2153 Crash at LLViewerTextureList::updateImageDecodePriorityAndrey Kleshchev
Crash at getTextureEntry which calls getTE(mTEOffset)
2024-07-14Fix: Stop textures from being set as inactive if still on a face. (#2017)TommyTheTerrible
Textures were being set to Inactive even if still in scene, causing them to be deleted and re-decoded in a loop.