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

Investigate Godot Node multithreaded processing for potential more performance #5042

Open
hhyyrylainen opened this issue Apr 17, 2024 · 1 comment
Labels
C# difficult engine possibly engine related issue programming

Comments

@hhyyrylainen
Copy link
Member

I just tried setting all of the ECS nodes to use background processing and quite expectedly that crashes.

Still it seems like the full feature is not done yet in Godot: godotengine/godot-proposals#6424

And also there's probably more that could be attempted on our side to see if performance can be gained. Verifying if it could give more performance would be the first step for us, as our node processing doesn't really do the heavy lifting so if for example rendering or sound stream state update doesn't happen in multithreaded way with this option, it's pretty much useless for us.

@hhyyrylainen hhyyrylainen added difficult programming engine possibly engine related issue C# labels Apr 17, 2024
@hhyyrylainen
Copy link
Member Author

Today with .NET 8 I just pulled in so good benchmark numbers that I'm no longer worried about the performance at all. But if this feature becomes available in Godot it would be nice to try anyway.

Benchmark results for MicrobeBenchmark v1
Stationary microbes score: 624.549
AI microbes score: 756.647
Spawns until no 60 FPS: 1460
Microbe stress average FPS: 213.834
Microbe stress min FPS: 43
Alive microbes: 775
Waiting for microbes to die: 169.204
Microbe deaths minimum FPS: 50
Remaining microbes: 300
Total test duration: 400.9
CPU: AMD Ryzen 9 5950X 16-Core Processor (used tasks: 16, native: 8, sim threads: True)
GPU: AMD Radeon RX 7900 XTX (RADV NAVI31)
OS: Linux

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C# difficult engine possibly engine related issue programming
Projects
Status: Backburner
Development

No branches or pull requests

1 participant