Skip to content

Conversation

@aevyrie
Copy link
Member

@aevyrie aevyrie commented Dec 29, 2025

Objective

Solution

  • Make a 3d version of bevymark, sticking to the existing patterns as closely as possible.

Testing

image

@github-actions
Copy link
Contributor

The generated examples/README.md is out of sync with the example metadata in Cargo.toml or the example readme template. Please run cargo run -p build-templated-pages -- update examples to update it, and commit the file change.

@aevyrie
Copy link
Member Author

aevyrie commented Dec 29, 2025

Might be able to use some of the options in many_cubes to stress test transform behavior instead?

Copy link
Contributor

@IceSentry IceSentry left a comment

Choose a reason for hiding this comment

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

Minor nitpicks but overall the example is good and seems useful

@alice-i-cecile alice-i-cecile added A-Rendering Drawing game state to the screen C-Testing A change that impacts how we test Bevy or how users test their apps S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Dec 29, 2025
@alice-i-cecile alice-i-cecile added X-Uncontroversial This work is generally agreed upon D-Straightforward Simple bug fixes and API improvements, docs, test and examples labels Dec 29, 2025
@IceSentry IceSentry 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 Dec 29, 2025
@alice-i-cecile alice-i-cecile added this pull request to the merge queue Dec 30, 2025
Merged via the queue into bevyengine:main with commit a912a48 Dec 30, 2025
40 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Jan 17, 2026
# Objective

- Speed up `collect_meshes_for_gpu_building`, a bottleneck for scenes
with many moving meshes.

## Solution

- Parallelize the gather step for mesh collection.
- Immediately start up a task for serial collection of meshes, which
cannot be parallelized.
- Spawn many tasks for gathering meshes, and send batches of these to
the collection task
- This allows the serial collection step to start immediately, instead
of being delayed until after all collection is finished.

## Testing

- Built a new `bevymark_3d` stress test for benchmarking dynamic 3d mesh
scenes. This is not currently covered by our stress tests.
#22298
- With 200k meshes, this drops total frame times from 16.4ms to 12.3ms
(-4.1ms)

<img width="631" height="377" alt="image"
src="https://github.com/user-attachments/assets/ff9de860-e1f2-4f98-8075-0b3720a82913"
/>

- Mesh collection itself drops from 7.9ms to 3.6ms (-4.3ms)

<img width="623" height="372" alt="image"
src="https://github.com/user-attachments/assets/cf52687a-503b-4f70-8e99-0ad2e63f4da0"
/>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Rendering Drawing game state to the screen C-Testing A change that impacts how we test Bevy or how users test their apps D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it X-Uncontroversial This work is generally agreed upon

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants