Skip to content
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

Convert _scene_cull() to use parallel foreach() #78016

Closed
wants to merge 2 commits into from
Closed

Convert _scene_cull() to use parallel foreach() #78016

wants to merge 2 commits into from

Conversation

myaaaaaaaaa
Copy link
Contributor

@myaaaaaaaaa myaaaaaaaaa commented Jun 8, 2023

Follow-up to #74118

Reduces the amount of code in the multithreaded culling path, which decreases lock contention and reduces the chances of any hidden race conditions lurking around (see #71705).

As a bonus, culling performance improves slightly for me (going from 1 -> 2 threads results in an average of 1.4x speedup rather than 1.3x), although obviously YMMV.

Depends on #74118 and #72784, marking as draft until those two are merged. Also has a soft dependency on #72716 (this PR works without it, but will likely result in performance regressions)

@myaaaaaaaaa
Copy link
Contributor Author

myaaaaaaaaa commented Jun 25, 2023

This PR passes the regression test in godotengine/godot-benchmarks#34

It has not tested with https://github.com/Calinou/godot-rendering-tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants