Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Transform Propagation Optimization: Static Subtree Marking #18589

Merged
merged 15 commits into from
Mar 30, 2025

Conversation

aevyrie
Copy link
Member

@aevyrie aevyrie commented Mar 28, 2025

Objective

Solution

  • Mark hierarchy subtrees with dirty bits to avoid transform propagation where not needed
  • This causes a performance regression when spawning many entities, or when the scene is entirely dynamic.
  • This results in massive speedups for largely static scenes.
  • In the future we could allow the user to change this behavior, or add some threshold based on how dynamic the scene is?

Testing

  • Caldera Hotel scene

@alice-i-cecile alice-i-cecile added this to the 0.16 milestone Mar 28, 2025
@Vrixyz
Copy link
Member

Vrixyz commented Mar 28, 2025

🤩

@IceSentry IceSentry added C-Performance A change motivated by improving speed, memory usage or compile times A-Transform Translations, rotations and scales S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Mar 28, 2025
Copy link
Member

@alice-i-cecile alice-i-cecile left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for tracking down the bug and getting the fix in <3 I wasn't pleased to have to revert this!

@alice-i-cecile alice-i-cecile added this pull request to the merge queue Mar 30, 2025
@alice-i-cecile alice-i-cecile added S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it and removed S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Mar 30, 2025
Merged via the queue into bevyengine:main with commit 8130b22 Mar 30, 2025
40 checks passed
mockersf pushed a commit that referenced this pull request Mar 30, 2025
# Objective

- Optimize static scene performance by marking unchanged subtrees.
-
[bef0209](bef0209)
fixes #18255 and #18363.
- Closes #18365 
- Includes change from #18321

## Solution

- Mark hierarchy subtrees with dirty bits to avoid transform propagation
where not needed
- This causes a performance regression when spawning many entities, or
when the scene is entirely dynamic.
- This results in massive speedups for largely static scenes.
- In the future we could allow the user to change this behavior, or add
some threshold based on how dynamic the scene is?

## Testing

- Caldera Hotel scene
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Transform Translations, rotations and scales C-Performance A change motivated by improving speed, memory usage or compile times S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it
Projects
None yet
5 participants