Squeezing the CPU. Multi-Threading in Godot - Pedro J. Estébanez - GodotCon 2024
ฝัง
- เผยแพร่เมื่อ 15 ธ.ค. 2024
- Godot leverages the multi-processing capabilities of modern CPUs by using OS threads (a.k.a., subprocesses) extensively. There is a number of different approaches that the engine uses internally and also exposes to userland in some cases, such as a global pool of worker threads and synchronization primitives. In addition, certain key elements of the engine must have a notion of multi-threaded processing so that operations are coordinated and synchronized properly. This is especially tricky in features such as resource loading and interaction with the scene tree.
This talk will go over all these topics, explaining where each fits in the global picture, how the engine and user projects can benefit from them as well as certain interesting implementation details. Despite the most natural audience seems to be engine contributors, this talk is also meant to be enjoyed by curious users of the engine that want to understand how stuff works and also those that want to learn how to make a good usage of multi-threading in their games.
🔗 Slides: talks.godoteng...
Fibers could actually be a great addition. They are super lightweight, so there is almost no context switching cost. It could bring more performance due to higher CPU time but you'd probably need some internal priority flags to manage them properly. Testing and debugging Fibers can get teal nasty.