[codex] Optimize capped elevation LOD lookup#2959
Merged
Merged
Conversation
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.
Summary
This optimizes
ElevationPool::getLODfor callers that immediately cap the returned LOD by requested sampling resolution. The helper now accepts the maximum useful LOD and stops searching a layer's data-extent R-tree as soon as it finds a level that meets or exceeds that cap.This preserves the returned sampled LOD after the existing
std::min(...)cap, while avoiding unnecessary R-tree callbacks in data-extents-heavy elevation layers.Benchmarks
Added
BM_ElevationPoolSampleMapCoordsFixedResolution, which samples 4096 map-coordinate points against a constant elevation layer with 256 overlapping data extents and validates that every point is sampled successfully.Command, from
testsafterosgearth_shell.bat:Before:
After:
That is roughly 13x faster on this targeted path.
Validation
configure.batbuild.batctest --test-dir build -C RelWithDebInfo --output-on-failurereports no registered testsosgearth_testscommand could not run because noosgearth_testsexecutable was produced or installed in this build tree