diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-09 18:15:33 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-09 18:15:33 +0300 |
commit | 6deb908a5c9f34deb4c19561082b14d8eda51e43 (patch) | |
tree | e72c9fd7b77f486deea839428573c0788c9ceda9 /source/blender/blenkernel/intern/pbvh.c | |
parent | 1cab3be7a7af483ed645c2912b3aed3292812746 (diff) | |
parent | 932d448ae013b5425efa974be5a106d9d6a16652 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/blenkernel/intern/pbvh.c')
-rw-r--r-- | source/blender/blenkernel/intern/pbvh.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c index 585a18cdad5..0395fc9c990 100644 --- a/source/blender/blenkernel/intern/pbvh.c +++ b/source/blender/blenkernel/intern/pbvh.c @@ -939,7 +939,8 @@ typedef struct PBVHUpdateData { int flag; } PBVHUpdateData; -static void pbvh_update_normals_accum_task_cb(void *userdata, const int n) +static void pbvh_update_normals_accum_task_cb(void *userdata, const int n, + const ParallelRangeTLS *UNUSED(tls)) { PBVHUpdateData *data = userdata; @@ -992,7 +993,8 @@ static void pbvh_update_normals_accum_task_cb(void *userdata, const int n) } } -static void pbvh_update_normals_store_task_cb(void *userdata, const int n) +static void pbvh_update_normals_store_task_cb(void *userdata, const int n, + const ParallelRangeTLS *UNUSED(tls)) { PBVHUpdateData *data = userdata; PBVH *bvh = data->bvh; @@ -1051,14 +1053,19 @@ static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes, .fnors = fnors, .vnors = vnors, }; - BLI_task_parallel_range(0, totnode, &data, pbvh_update_normals_accum_task_cb, totnode > PBVH_THREADED_LIMIT); + ParallelRangeSettings settings; + BLI_parallel_range_settings_defaults(&settings); + settings.use_threading = (totnode > PBVH_THREADED_LIMIT); - BLI_task_parallel_range(0, totnode, &data, pbvh_update_normals_store_task_cb, totnode > PBVH_THREADED_LIMIT); + BLI_task_parallel_range(0, totnode, &data, pbvh_update_normals_accum_task_cb, &settings); + + BLI_task_parallel_range(0, totnode, &data, pbvh_update_normals_store_task_cb, &settings); MEM_freeN(vnors); } -static void pbvh_update_BB_redraw_task_cb(void *userdata, const int n) +static void pbvh_update_BB_redraw_task_cb(void *userdata, const int n, + const ParallelRangeTLS *UNUSED(tls)) { PBVHUpdateData *data = userdata; PBVH *bvh = data->bvh; @@ -1085,7 +1092,10 @@ void pbvh_update_BB_redraw(PBVH *bvh, PBVHNode **nodes, int totnode, int flag) .flag = flag, }; - BLI_task_parallel_range(0, totnode, &data, pbvh_update_BB_redraw_task_cb, totnode > PBVH_THREADED_LIMIT); + ParallelRangeSettings settings; + BLI_parallel_range_settings_defaults(&settings); + settings.use_threading = (totnode > PBVH_THREADED_LIMIT); + BLI_task_parallel_range(0, totnode, &data, pbvh_update_BB_redraw_task_cb, &settings); } static void pbvh_update_draw_buffers(PBVH *bvh, PBVHNode **nodes, int totnode) |