Cache value of Jolt Physics project setting bounce_velocity_threshold
#101237
+3
−1
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.
Currently a number of Jolt-related project settings are being cached after their initial read, due to being used in potentially hot codepaths where the overhead and/or thread synchronization from
ProjectSettings::get_setting_with_override
andStringName
may be detrimental to performance.This pull request makes that same change to the
physics/jolt_physics_3d/simulation/bounce_velocity_threshold
project setting, which is currently being read inJoltContactListener3D::_try_add_contacts
(see here) which is potentially executed in parallel from multiple threads during the simulation step, and as such would likely suffer from the thread synchronization mentioned above.I'll admit I haven't profiled this, but it's a small and risk-free change either way.
(This is also already happening in the Godot Jolt extension, where every project setting is cached on first read, in case there's any worry about correctness.)