-
-
Notifications
You must be signed in to change notification settings - Fork 4.3k
Bevymark 3D #22298
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
Bevymark 3D #22298
Conversation
|
The generated |
|
Might be able to use some of the options in |
IceSentry
left a comment
There was a problem hiding this 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
# 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" />
Objective
Solution
bevymark, sticking to the existing patterns as closely as possible.Testing