Page MenuHome

Switch Blender task scheduler to use TBB
Open, NormalPublic

Description

In rB6c302d6529ec: Sculpt: use TBB instead of BLI_task for multithreading we switched to TBB for sculpting, to avoid threading overhead issues on some platforms.

Rather than trying to make our own optimize task scheduler implementation, we should switch to TBB. If we use it everywhere, we can have a single thread pool for Cycles, Mantaflow, OpenVDB and the rest of Blender. It could also help improve performance in some areas.

An experimental patch from 2017 by Sergey is here:

Details

Type
To Do

Event Timeline

I hope that this partial switch to tbb does not bite us in some unexpected ways… would have rather switched entirely…

But in general, yes, think switching to tbb would avoid us spending a lot of time re-inventing the wheel, since there's already a state-of-the-art lib available for that.

Also, would not mind to get D5371 in before we do that switch, otherwise i’ll have to redo that work again.

Here's an initial implementation I made a few weeks ago:
https://developer.blender.org/diffusion/B/history/temp-tbb-task-scheduler/

I don't intend to work on this in the next two months, but if someone else wants to work in this area it's there.