Cap automatic texture memory on Apple Silicon - #260
Open
LisaScheers wants to merge 3 commits into
Open
Conversation
Contributor
|
Okay there is a few problems here:
|
LisaScheers
marked this pull request as ready for review
July 26, 2026 00:51
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
UnlimitedWhy
A profile of Firestorm 7.2.5.81344 on a 48 GB Apple Silicon Mac showed that the viewer detected 38,338 MB as VRAM. With the automatic limiter disabled, the existing controller allowed a target near 30 GB before aggressive texture downscaling. The process reached a 13.9 GB physical-footprint peak, including roughly 8 GB of graphics allocations.
Apple Silicon VRAM is shared system memory, so treating most of the reported value as independently available graphics memory creates avoidable memory pressure. The new cap produces a 6,144 MB automatic budget on the profiled machine before the existing 80% safety target is applied.
The platform-neutral VRAM divisor remains at Firestorm's existing default of
1; non-unified-memory platforms retain their original budgeting calculation.Upstream status
This optimization is also proposed upstream in secondlife/viewer#6034. This Firestorm PR remains a draft pending the upstream review.
Validation
-std=c++17 -Wall -Wextra -Werrorxmllint --noout indra/newview/app_settings/settings.xmlgit diff --checkA full viewer build was not run because the profiling host does not have the Linden dependency bundle or an accepted full-Xcode license.