diff options
-rw-r--r-- | intern/cycles/util/util_tbb.h | 7 | ||||
-rw-r--r-- | source/blender/blenlib/BLI_index_range.hh | 11 | ||||
-rw-r--r-- | source/blender/blenlib/intern/task_pool.cc | 7 |
3 files changed, 14 insertions, 11 deletions
diff --git a/intern/cycles/util/util_tbb.h b/intern/cycles/util/util_tbb.h index 206ba106ca6..168bd5db961 100644 --- a/intern/cycles/util/util_tbb.h +++ b/intern/cycles/util/util_tbb.h @@ -36,7 +36,14 @@ using tbb::parallel_for; static inline void parallel_for_cancel() { +#if TBB_INTERFACE_VERSION_MAJOR >= 12 + tbb::task_group_context *ctx = tbb::task::current_context(); + if (ctx) { + ctx->cancel_group_execution(); + } +#else tbb::task::self().cancel_group_execution(); +#endif } CCL_NAMESPACE_END diff --git a/source/blender/blenlib/BLI_index_range.hh b/source/blender/blenlib/BLI_index_range.hh index 4121542c887..61a8088edea 100644 --- a/source/blender/blenlib/BLI_index_range.hh +++ b/source/blender/blenlib/BLI_index_range.hh @@ -58,11 +58,6 @@ #include "BLI_utildefines.h" -/* Forward declare tbb::blocked_range for conversion operations. */ -namespace tbb { -template<typename Value> class blocked_range; -} - namespace blender { template<typename T> class Span; @@ -86,12 +81,6 @@ class IndexRange { BLI_assert(size >= 0); } - template<typename T> - constexpr IndexRange(const tbb::blocked_range<T> &range) - : start_(range.begin()), size_(range.size()) - { - } - class Iterator { private: int64_t current_; diff --git a/source/blender/blenlib/intern/task_pool.cc b/source/blender/blenlib/intern/task_pool.cc index 4b545c5647e..10f15f8749c 100644 --- a/source/blender/blenlib/intern/task_pool.cc +++ b/source/blender/blenlib/intern/task_pool.cc @@ -131,6 +131,12 @@ class TBBTaskGroup : public tbb::task_group { public: TBBTaskGroup(TaskPriority priority) { +# if TBB_INTERFACE_VERSION_MAJOR >= 12 + /* TODO: support priorities in TBB 2021, where they are only available as + * part of task arenas, no longer for task groups. Or remove support for + * task priorities if they are no longer useful. */ + UNUSED_VARS(priority); +# else switch (priority) { case TASK_PRIORITY_LOW: my_context.set_priority(tbb::priority_low); @@ -139,6 +145,7 @@ class TBBTaskGroup : public tbb::task_group { my_context.set_priority(tbb::priority_normal); break; } +# endif } ~TBBTaskGroup() |