-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Don't unconditionally create temporary render entities for visible objects. #16723
Merged
alice-i-cecile
merged 1 commit into
bevyengine:main
from
pcwalton:remove-temporary-render-entities
Dec 10, 2024
Merged
Don't unconditionally create temporary render entities for visible objects. #16723
alice-i-cecile
merged 1 commit into
bevyengine:main
from
pcwalton:remove-temporary-render-entities
Dec 10, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
objects. PR bevyengine#15756 made us create temporary render entities for all visible objects, even if they had no render world counterpart. This regressed our `many_cubes` time from about 3.59 ms/frame to 4.66 ms/frame. This commit changes that behavior to use `Entity::PLACEHOLDER` instead of creating a temporary render entity. This improves our `many_cubes` time from 5.66 ms/frame to 3.96 ms/frame, a 43% speedup. I tested 3D, 2D gizmos, and UI and they seem to work.
tychedelia
approved these changes
Dec 9, 2024
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.
Thanks for looking into this.
kristoff3r
approved these changes
Dec 9, 2024
Does this qualify for 0.15.1 ? |
We should let it bake for a bit, because this has a decent probability of breaking something. |
BD103
pushed a commit
to BD103/bevy
that referenced
this pull request
Dec 10, 2024
…jects. (bevyengine#16723) PR bevyengine#15756 made us create temporary render entities for all visible objects, even if they had no render world counterpart. This regressed our `many_cubes` time from about 3.59 ms/frame to 4.66 ms/frame. This commit changes that behavior to use `Entity::PLACEHOLDER` instead of creating a temporary render entity. This improves our `many_cubes` time from 5.66 ms/frame to 3.96 ms/frame, a 43% speedup. I tested 3D, 2D gizmos, and UI and they seem to work. See the following graph of `many_cubes` frame time (lower is better). PR bevyengine#15756 is the one in October. 
ecoskey
pushed a commit
to ecoskey/bevy
that referenced
this pull request
Jan 6, 2025
…jects. (bevyengine#16723) PR bevyengine#15756 made us create temporary render entities for all visible objects, even if they had no render world counterpart. This regressed our `many_cubes` time from about 3.59 ms/frame to 4.66 ms/frame. This commit changes that behavior to use `Entity::PLACEHOLDER` instead of creating a temporary render entity. This improves our `many_cubes` time from 5.66 ms/frame to 3.96 ms/frame, a 43% speedup. I tested 3D, 2D gizmos, and UI and they seem to work. See the following graph of `many_cubes` frame time (lower is better). PR bevyengine#15756 is the one in October. 
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
A-Rendering
Drawing game state to the screen
C-Performance
A change motivated by improving speed, memory usage or compile times
P-Regression
Functionality that used to work but no longer does. Add a test for this!
S-Ready-For-Final-Review
This PR has been approved by the community. It's ready for a maintainer to consider merging it
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.
PR #15756 made us create temporary render entities for all visible objects, even if they had no render world counterpart. This regressed our
many_cubes
time from about 3.59 ms/frame to 4.66 ms/frame.This commit changes that behavior to use
Entity::PLACEHOLDER
instead of creating a temporary render entity. This improves ourmany_cubes
time from 5.66 ms/frame to 3.96 ms/frame, a 43% speedup.I tested 3D, 2D gizmos, and UI and they seem to work.
See the following graph of
many_cubes
frame time (lower is better). PR #15756 is the one in October.