diff options
author | Brecht Van Lommel <brecht@blender.org> | 2020-06-05 17:39:57 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-06-22 14:27:37 +0300 |
commit | e50f1ddc6540680d2aafc1c76f8339d69350f84a (patch) | |
tree | 67a6fce72d2689096ed5e56a764b806e748f54fb /intern/cycles/device | |
parent | 54e3487c9e80a489540a8a4c139ff147e6deb764 (diff) |
Cycles: use TBB for task pools and task scheduler
No significant performance improvement is expected, but it means we have a
single thread pool throughout Blender. And it should make adding more
parallellization in the future easier.
After previous refactoring commits this is basically a drop-in replacement.
One difference is that the task pool had a mechanism for scheduling tasks to
the front of the queue to minimize memory usage. TBB has a smarter algorithm
to balance depth-first and breadth-first scheduling of tasks and we assume that
removes the need to manually provide hints to the scheduler.
Fixes T77533
Diffstat (limited to 'intern/cycles/device')
-rw-r--r-- | intern/cycles/device/device.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/device/device.h | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index 41dd7894d93..263d3d24b13 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -77,7 +77,7 @@ std::ostream &operator<<(std::ostream &os, const DeviceRequestedFeatures &reques /* Device */ -Device::~Device() +Device::~Device() noexcept(false) { if (!background) { if (vertex_buffer != 0) { diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index dff981080a5..67828103394 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -319,7 +319,8 @@ class Device { virtual void mem_free_sub_ptr(device_ptr /*ptr*/){}; public: - virtual ~Device(); + /* noexcept needed to silence TBB warning. */ + virtual ~Device() noexcept(false); /* info */ DeviceInfo info; |