Allow lazy-loading chunk section data when using Vector API #3035
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.
Overview
Description
Previously, the use of the vector api forced us to load get and set arrays eagerly. This also caused some overhead in e.g. heightmap recalculation because a set array was present even if no changes were applied to a chunk section.
By using a thin wrapper, we can delay loading the data (or load dummy data) to when it is actually needed. This reduces the mentioned overhead.
Performance difference isn't really noticeable from a user's perspective, as the overhead ran pretty much in parallel to the edit itself. Manually inspecting profiles shows that there is less work done though (especially visible when using
//count). This might be more noticeable on busy servers or servers with only 2-4 cores.