Cache hillshade textures based on texture size, not tile size. #7691
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.
Fixes #7690 -- hillshade layers leak GPU memory.
I tested this manually by panning around in the
hillshade.html
debug page. Before the change, you can seepainter._tileTextures
fill up with an unbounded set of textures and watch memory use grow. After the change, memory use stabilizes after panning around for a while, and you can watch textures getting re-used inPainter#getTileTexture
.@mollymerp it doesn't look to me like native has the same problem, but not sure if the logic could be hidden somewhere else -- does that sound right to you?
Launch Checklist
write tests for all new functionalitydocument any changes to public APIstagged@mapbox/studio
and/or@mapbox/maps-design
if this PR includes style spec changes