I’m thinking about best practises when designing a game engine with a Vulkan renderer.
Adam Sawicki (creator of Vulkan memory allocator library) pointed out that it’s good practise to design a game engine with a thread pool and a generic task system to make use of all cpu cores efficiently.
You really should watch his youtube talk btw: DD2018: Adam Sawicki - Porting your engine to Vulkan or DX12
A good code example can be found on stackoverflow: “C++17 thread pool”.
So far I can’t find any disadvantages of this approach. What are your opinions on this?
I know that the answer to this question very much depends on the project’s goals, code structure and synchronisation. But is there any general downside of using a threadpool when dealing with Vulkan if we assume I can get all synchronisation done correctly? Is there a common alternative?