Optimize matrix calculation for labels #7967
Merged
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.
I noticed that
getLabelPlaneMatrix
andgetGlCoordMatrix
functions were taking considerable time on the main thread, and made matrix caching more aggressive to avoid a lot of this work, at least for screen-aligned labels which dominate the map. After the changes they take 10x less time.We could cache even more (and I might follow up on this), but this PR gets us most of the way there with minimal changes.
Before:
After:
Bench:
Curiously, paint benchmark is nearly unaffected.