Skip to content

Conversation

@SirYwell
Copy link
Member

@SirYwell SirYwell commented Jan 2, 2026

Overview

Description

BlendBall is implemented acting on a cube, applying a block-by-block action with no dependencies between these actions. Significant performance overhead is caused by the EditSession#getBlock(...) indirection, going through the extent stack and the chunk caching mechanism. On top of that, for larger radii, we still process each block sequentially instead of making use of multiple threads.

By implementing a custom Filter, we lower the overhead of accessing blocks as well as easily introducing parallelism.

Submitter Checklist

  • Make sure you are opening from a topic branch (/feature/fix/docs/ branch (right side)) and not your main branch.
  • Ensure that the pull request title represents the desired changelog entry.
  • New public fields and methods are annotated with @since TODO.
  • I read and followed the contribution guidelines.

@SirYwell SirYwell requested a review from a team as a code owner January 2, 2026 10:48
@dordsor21
Copy link
Member

Presumably the result is no longer deterministic for the same input given the multi-threading?

@SirYwell
Copy link
Member Author

SirYwell commented Jan 4, 2026

Presumably the result is no longer deterministic for the same input given the multi-threading?

If we read from chunks that were flushed before in the same edit, yes. But if that's a problem for typical brush sizes, then it's rather critical in general.

@dordsor21
Copy link
Member

As long as it's not "corrupting" I think it's fine

@dordsor21 dordsor21 requested a review from a team January 4, 2026 18:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants