Optimize AnimationTree, Improve internals & Editor & Node::process_thread_group safety#117277
Conversation
a3085e2 to
a06b90d
Compare
|
This looks very impressive. Is it something I could cherrypick into 4.6.1 to solve some animation performance problems I have been having? |
The PR is based off this commit a1eaac8, so I think you would need a 4.7 build to get it to work. If you get a chance to test it there, it would be helpful if you could let us know whether you run into any issues. |
Which are the commits I should get so that it is applicable to 4.6? I want this into my production game that releases soon. |
609326b to
16c6dd9
Compare
Apply suggestions from code review Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> Co-Authored-By: Silc Lizard (Tokage) Renew <tokage.it.lab@gmail.com>
TokageItLab
left a comment
There was a problem hiding this comment.
Although there are many lines of changes, most of them are actually changes to arguments. Since consensus on these changes was already reached in #112308 (review) before this PR was split off, this should not be a problem.
I encountered an issue where results were broken when filters were complex (for example, this MRP state shouldn't be processed but it is not so), but since this behavior is unchanged from before, I consider that it is no problem as an optimization PR. See also #89726.
BTW, regarding filtering, there was already a proposal to turn it into a resource like #76788, so I believe that not only will fixes for complex cases be needed, but a large-scale rework will also be necessary at some point.
I also found a bug where the read-only state in BlendTreeEditor is broken, but this PR is unrelated to that as well.
I recommend merging this PR at early stage of dev so that many people can test them to ensure there are no issues.
|
Thanks! |
Supersedes #113444
Related #116394 #112308 #110474
Benchmark
Compiled with
scons production=yes debug_symbols=yes target=editorRan with
./engine_binary --headless --print-fps --path /path/to/project res://path_to_world.tscnProject: optimize.zip
Scene:
res://World.tscnBefore: (a1eaac8)
FPS: high 227, low 223, median 224.5
MSPF: high 4.48, low 4.40, median 4.45
After: (ac1c551294f64f60dda5b2b7fc95335666189e2c)
FPS: high 342, low 333, median 338
MSPF: high 3.00, low 2.92, median 2.95
median FPS change: +113.5 (+50.56%)
median MSPF change: -1.50 (-33.71%)
Scene:
res://World_StressTest.tscnBefore: (a1eaac8)
FPS: high 110, low 103, median 105
MSPF: high 9.70, low 9.09, median 9.52
After: (ac1c551294f64f60dda5b2b7fc95335666189e2c)
FPS: high 127, low 118, median 126
MSPF: high 8.47, low 7.87, median 7.93
median FPS change: +21 (+20.00%)
median MSPF change: -1.59 (-16.70%)
Bugsquad edited:
Captureblend mode inBlendSpace1DandBlendSpace2D#112053