Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2019-07-30 15:56:47 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2019-07-30 15:56:47 +0300
commit5f405728bb4a6c32308371905955e87db851e5aa (patch)
tree8e8a4f6d51cd8f87678ff9200e35cc71a4240e46 /source/blender/blenlib
parentb9c257019fe256af6c2978b94b4948d18a6cd4eb (diff)
BLI_task: Cleanup: rename some structs to make them more generic.
TLS and Settings can be used by other types of parallel 'for loops', so removing 'Range' from their names. No functional changes expected here.
Diffstat (limited to 'source/blender/blenlib')
-rw-r--r--source/blender/blenlib/BLI_task.h23
-rw-r--r--source/blender/blenlib/intern/BLI_kdopbvh.c10
-rw-r--r--source/blender/blenlib/intern/math_statistics.c4
-rw-r--r--source/blender/blenlib/intern/task.c10
4 files changed, 24 insertions, 23 deletions
diff --git a/source/blender/blenlib/BLI_task.h b/source/blender/blenlib/BLI_task.h
index 85680d8aae8..568d6c9a84a 100644
--- a/source/blender/blenlib/BLI_task.h
+++ b/source/blender/blenlib/BLI_task.h
@@ -142,22 +142,23 @@ typedef enum eTaskSchedulingMode {
} eTaskSchedulingMode;
/* Per-thread specific data passed to the callback. */
-typedef struct ParallelRangeTLS {
+typedef struct TaskParallelTLS {
/* Identifier of the thread who this data belongs to. */
int thread_id;
/* Copy of user-specifier chunk, which is copied from original chunk to all
* worker threads. This is similar to OpenMP's firstprivate.
*/
void *userdata_chunk;
-} ParallelRangeTLS;
+} TaskParallelTLS;
+
+typedef void (*TaskParallelFinalizeFunc)(void *__restrict userdata,
+ void *__restrict userdata_chunk);
typedef void (*TaskParallelRangeFunc)(void *__restrict userdata,
const int iter,
- const ParallelRangeTLS *__restrict tls);
-typedef void (*TaskParallelRangeFuncFinalize)(void *__restrict userdata,
- void *__restrict userdata_chunk);
+ const TaskParallelTLS *__restrict tls);
-typedef struct ParallelRangeSettings {
+typedef struct TaskParallelSettings {
/* Whether caller allows to do threading of the particular range.
* Usually set by some equation, which forces threading off when threading
* overhead becomes higher than speed benefit.
@@ -175,7 +176,7 @@ typedef struct ParallelRangeSettings {
/* Function called from calling thread once whole range have been
* processed.
*/
- TaskParallelRangeFuncFinalize func_finalize;
+ TaskParallelFinalizeFunc func_finalize;
/* Minimum allowed number of range iterators to be handled by a single
* thread. This allows to achieve following:
* - Reduce amount of threading overhead.
@@ -187,15 +188,15 @@ typedef struct ParallelRangeSettings {
* having a global use_threading switch based on just range size.
*/
int min_iter_per_thread;
-} ParallelRangeSettings;
+} TaskParallelSettings;
-BLI_INLINE void BLI_parallel_range_settings_defaults(ParallelRangeSettings *settings);
+BLI_INLINE void BLI_parallel_range_settings_defaults(TaskParallelSettings *settings);
void BLI_task_parallel_range(const int start,
const int stop,
void *userdata,
TaskParallelRangeFunc func,
- const ParallelRangeSettings *settings);
+ const TaskParallelSettings *settings);
typedef void (*TaskParallelListbaseFunc)(void *userdata, struct Link *iter, int index);
void BLI_task_parallel_listbase(struct ListBase *listbase,
@@ -211,7 +212,7 @@ void BLI_task_parallel_mempool(struct BLI_mempool *mempool,
const bool use_threading);
/* TODO(sergey): Think of a better place for this. */
-BLI_INLINE void BLI_parallel_range_settings_defaults(ParallelRangeSettings *settings)
+BLI_INLINE void BLI_parallel_range_settings_defaults(TaskParallelSettings *settings)
{
memset(settings, 0, sizeof(*settings));
settings->use_threading = true;
diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c
index f43f55a352b..f1811ff6e4f 100644
--- a/source/blender/blenlib/intern/BLI_kdopbvh.c
+++ b/source/blender/blenlib/intern/BLI_kdopbvh.c
@@ -700,7 +700,7 @@ typedef struct BVHDivNodesData {
static void non_recursive_bvh_div_nodes_task_cb(void *__restrict userdata,
const int j,
- const ParallelRangeTLS *__restrict UNUSED(tls))
+ const TaskParallelTLS *__restrict UNUSED(tls))
{
BVHDivNodesData *data = userdata;
@@ -841,14 +841,14 @@ static void non_recursive_bvh_div_nodes(const BVHTree *tree,
cb_data.depth = depth;
if (true) {
- ParallelRangeSettings settings;
+ TaskParallelSettings settings;
BLI_parallel_range_settings_defaults(&settings);
settings.use_threading = (num_leafs > KDOPBVH_THREAD_LEAF_THRESHOLD);
BLI_task_parallel_range(i, i_stop, &cb_data, non_recursive_bvh_div_nodes_task_cb, &settings);
}
else {
/* Less hassle for debugging. */
- ParallelRangeTLS tls = {0};
+ TaskParallelTLS tls = {0};
for (int i_task = i; i_task < i_stop; i_task++) {
non_recursive_bvh_div_nodes_task_cb(&cb_data, i_task, &tls);
}
@@ -1195,7 +1195,7 @@ int BLI_bvhtree_overlap_thread_num(const BVHTree *tree)
static void bvhtree_overlap_task_cb(void *__restrict userdata,
const int j,
- const ParallelRangeTLS *__restrict UNUSED(tls))
+ const TaskParallelTLS *__restrict UNUSED(tls))
{
BVHOverlapData_Thread *data = &((BVHOverlapData_Thread *)userdata)[j];
BVHOverlapData_Shared *data_shared = data->shared;
@@ -1262,7 +1262,7 @@ BVHTreeOverlap *BLI_bvhtree_overlap(
data[j].thread = j;
}
- ParallelRangeSettings settings;
+ TaskParallelSettings settings;
BLI_parallel_range_settings_defaults(&settings);
settings.use_threading = (tree1->totleaf > KDOPBVH_THREAD_LEAF_THRESHOLD);
BLI_task_parallel_range(0, thread_num, data, bvhtree_overlap_task_cb, &settings);
diff --git a/source/blender/blenlib/intern/math_statistics.c b/source/blender/blenlib/intern/math_statistics.c
index 7c461120520..d4fcb32ce37 100644
--- a/source/blender/blenlib/intern/math_statistics.c
+++ b/source/blender/blenlib/intern/math_statistics.c
@@ -42,7 +42,7 @@ typedef struct CovarianceData {
static void covariance_m_vn_ex_task_cb(void *__restrict userdata,
const int a,
- const ParallelRangeTLS *__restrict UNUSED(tls))
+ const TaskParallelTLS *__restrict UNUSED(tls))
{
CovarianceData *data = userdata;
const float *cos_vn = data->cos_vn;
@@ -122,7 +122,7 @@ void BLI_covariance_m_vn_ex(const int n,
.nbr_cos_vn = nbr_cos_vn,
};
- ParallelRangeSettings settings;
+ TaskParallelSettings settings;
BLI_parallel_range_settings_defaults(&settings);
settings.use_threading = ((nbr_cos_vn * n * n) >= 10000);
BLI_task_parallel_range(0, n * n, &data, covariance_m_vn_ex_task_cb, &settings);
diff --git a/source/blender/blenlib/intern/task.c b/source/blender/blenlib/intern/task.c
index cc54fb6bd38..bea38a232cc 100644
--- a/source/blender/blenlib/intern/task.c
+++ b/source/blender/blenlib/intern/task.c
@@ -1054,7 +1054,7 @@ typedef struct ParallelRangeState {
int chunk_size;
} ParallelRangeState;
-BLI_INLINE void task_parallel_range_calc_chunk_size(const ParallelRangeSettings *settings,
+BLI_INLINE void task_parallel_range_calc_chunk_size(const TaskParallelSettings *settings,
const int num_tasks,
ParallelRangeState *state)
{
@@ -1112,7 +1112,7 @@ BLI_INLINE bool parallel_range_next_iter_get(ParallelRangeState *__restrict stat
static void parallel_range_func(TaskPool *__restrict pool, void *userdata_chunk, int thread_id)
{
ParallelRangeState *__restrict state = BLI_task_pool_userdata(pool);
- ParallelRangeTLS tls = {
+ TaskParallelTLS tls = {
.thread_id = thread_id,
.userdata_chunk = userdata_chunk,
};
@@ -1128,7 +1128,7 @@ static void parallel_range_single_thread(const int start,
int const stop,
void *userdata,
TaskParallelRangeFunc func,
- const ParallelRangeSettings *settings)
+ const TaskParallelSettings *settings)
{
void *userdata_chunk = settings->userdata_chunk;
const size_t userdata_chunk_size = settings->userdata_chunk_size;
@@ -1138,7 +1138,7 @@ static void parallel_range_single_thread(const int start,
userdata_chunk_local = MALLOCA(userdata_chunk_size);
memcpy(userdata_chunk_local, userdata_chunk, userdata_chunk_size);
}
- ParallelRangeTLS tls = {
+ TaskParallelTLS tls = {
.thread_id = 0,
.userdata_chunk = userdata_chunk_local,
};
@@ -1161,7 +1161,7 @@ void BLI_task_parallel_range(const int start,
const int stop,
void *userdata,
TaskParallelRangeFunc func,
- const ParallelRangeSettings *settings)
+ const TaskParallelSettings *settings)
{
TaskScheduler *task_scheduler;
TaskPool *task_pool;