[Bf-blender-cvs] [3732508c64a] blender-v2.92-release: Fix T84745: build error with TBB 2021

Brecht Van Lommel noreply at git.blender.org
Fri Jan 15 17:31:02 CET 2021


Commit: 3732508c64ad51c77a6fb83a2444af104d95cfd9
Author: Brecht Van Lommel
Date:   Fri Jan 15 17:21:14 2021 +0100
Branches: blender-v2.92-release
https://developer.blender.org/rB3732508c64ad51c77a6fb83a2444af104d95cfd9

Fix T84745: build error with TBB 2021

task_group::is_canceling() was removed.

===================================================================

M	intern/cycles/device/device_cpu.cpp
M	intern/cycles/util/util_task.cpp
M	intern/cycles/util/util_task.h
M	source/blender/blenlib/BLI_task.h
M	source/blender/blenlib/intern/task_pool.cc

===================================================================

diff --git a/intern/cycles/device/device_cpu.cpp b/intern/cycles/device/device_cpu.cpp
index bd00d4db775..fdfd3f83be6 100644
--- a/intern/cycles/device/device_cpu.cpp
+++ b/intern/cycles/device/device_cpu.cpp
@@ -951,7 +951,7 @@ class CPUDevice : public Device {
     SIMD_SET_FLUSH_TO_ZERO;
 
     for (int sample = start_sample; sample < end_sample; sample++) {
-      if (task.get_cancel() || task_pool.canceled()) {
+      if (task.get_cancel() || TaskPool::canceled()) {
         if (task.need_finish_queue == false)
           break;
       }
@@ -1249,7 +1249,7 @@ class CPUDevice : public Device {
 
   void thread_render(DeviceTask &task)
   {
-    if (task_pool.canceled()) {
+    if (TaskPool::canceled()) {
       if (task.need_finish_queue == false)
         return;
     }
@@ -1319,7 +1319,7 @@ class CPUDevice : public Device {
 
       task.release_tile(tile);
 
-      if (task_pool.canceled()) {
+      if (TaskPool::canceled()) {
         if (task.need_finish_queue == false)
           break;
       }
@@ -1416,7 +1416,7 @@ class CPUDevice : public Device {
                         task.offset,
                         sample);
 
-      if (task.get_cancel() || task_pool.canceled())
+      if (task.get_cancel() || TaskPool::canceled())
         break;
 
       task.update_progress(NULL);
diff --git a/intern/cycles/util/util_task.cpp b/intern/cycles/util/util_task.cpp
index 50c236ac968..949ba0a7b4d 100644
--- a/intern/cycles/util/util_task.cpp
+++ b/intern/cycles/util/util_task.cpp
@@ -62,7 +62,7 @@ void TaskPool::cancel()
 
 bool TaskPool::canceled()
 {
-  return tbb_group.is_canceling();
+  return tbb::is_current_task_group_canceling();
 }
 
 /* Task Scheduler */
diff --git a/intern/cycles/util/util_task.h b/intern/cycles/util/util_task.h
index f2718600f30..7c39ed675b5 100644
--- a/intern/cycles/util/util_task.h
+++ b/intern/cycles/util/util_task.h
@@ -61,7 +61,7 @@ class TaskPool {
   void wait_work(Summary *stats = NULL); /* work and wait until all tasks are done */
   void cancel(); /* cancel all tasks and wait until they are no longer executing */
 
-  bool canceled(); /* for worker threads, test if canceled */
+  static bool canceled(); /* For worker threads, test if current task pool canceled. */
 
  protected:
   tbb::task_group tbb_group;
diff --git a/source/blender/blenlib/BLI_task.h b/source/blender/blenlib/BLI_task.h
index a3805f71316..9e61686b37a 100644
--- a/source/blender/blenlib/BLI_task.h
+++ b/source/blender/blenlib/BLI_task.h
@@ -105,8 +105,10 @@ void BLI_task_pool_work_and_wait(TaskPool *pool);
 /* cancel all tasks, keep worker threads running */
 void BLI_task_pool_cancel(TaskPool *pool);
 
-/* for worker threads, test if canceled */
-bool BLI_task_pool_canceled(TaskPool *pool);
+/* for worker threads, test if current task pool canceled. this function may
+ * only be called from worker threads and pool must be the task pool that the
+ * thread is currently executing a task from. */
+bool BLI_task_pool_current_canceled(TaskPool *pool);
 
 /* optional userdata pointer to pass along to run function */
 void *BLI_task_pool_user_data(TaskPool *pool);
diff --git a/source/blender/blenlib/intern/task_pool.cc b/source/blender/blenlib/intern/task_pool.cc
index dfed24da2d9..4b545c5647e 100644
--- a/source/blender/blenlib/intern/task_pool.cc
+++ b/source/blender/blenlib/intern/task_pool.cc
@@ -268,7 +268,7 @@ static bool tbb_task_pool_canceled(TaskPool *pool)
 {
 #ifdef WITH_TBB
   if (pool->use_threads) {
-    return pool->tbb_group.is_canceling();
+    return tbb::is_current_task_group_canceling();
   }
 #else
   UNUSED_VARS(pool);
@@ -520,7 +520,7 @@ void BLI_task_pool_cancel(TaskPool *pool)
   }
 }
 
-bool BLI_task_pool_canceled(TaskPool *pool)
+bool BLI_task_pool_current_canceled(TaskPool *pool)
 {
   switch (pool->type) {
     case TASK_POOL_TBB:



More information about the Bf-blender-cvs mailing list