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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-01-05 18:33:13 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-01-09 18:09:33 +0300
commitd2708b0f73d5f0e0a40b36da21c6a0d15405e739 (patch)
tree53d699a0a7701dbe009234633a38065e6f474cdf /source/blender/blenkernel
parentf5d64b59f5152114cfa25a2b7433ed25204cb149 (diff)
Task scheduler: Get rid of extended version of parallel range callback
Wrap all arguments into TLS type of argument. Avoids some branching and also makes it easier to extend things in the future.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r--source/blender/blenkernel/intern/CCGSubSurf_legacy.c18
-rw-r--r--source/blender/blenkernel/intern/colortools.c4
-rw-r--r--source/blender/blenkernel/intern/dynamicpaint.c85
-rw-r--r--source/blender/blenkernel/intern/mask_rasterize.c3
-rw-r--r--source/blender/blenkernel/intern/mesh_evaluate.c12
-rw-r--r--source/blender/blenkernel/intern/ocean.c3
-rw-r--r--source/blender/blenkernel/intern/particle_system.c14
-rw-r--r--source/blender/blenkernel/intern/pbvh.c9
-rw-r--r--source/blender/blenkernel/intern/shrinkwrap.c12
-rw-r--r--source/blender/blenkernel/intern/smoke.c8
-rw-r--r--source/blender/blenkernel/intern/tracking_auto.c4
-rw-r--r--source/blender/blenkernel/intern/tracking_stabilize.c5
12 files changed, 110 insertions, 67 deletions
diff --git a/source/blender/blenkernel/intern/CCGSubSurf_legacy.c b/source/blender/blenkernel/intern/CCGSubSurf_legacy.c
index f68d1a2697c..8b3ea249396 100644
--- a/source/blender/blenkernel/intern/CCGSubSurf_legacy.c
+++ b/source/blender/blenkernel/intern/CCGSubSurf_legacy.c
@@ -136,7 +136,8 @@ typedef struct CCGSubSurfCalcSubdivData {
int curLvl;
} CCGSubSurfCalcSubdivData;
-static void ccgSubSurf__calcVertNormals_faces_accumulate_cb(void *userdata, int ptrIdx)
+static void ccgSubSurf__calcVertNormals_faces_accumulate_cb(void *userdata, int ptrIdx,
+ const ParallelRangeTLS *UNUSED(tls))
{
CCGSubSurfCalcSubdivData *data = userdata;
@@ -227,7 +228,8 @@ static void ccgSubSurf__calcVertNormals_faces_accumulate_cb(void *userdata, int
}
}
-static void ccgSubSurf__calcVertNormals_faces_finalize_cb(void *userdata, int ptrIdx)
+static void ccgSubSurf__calcVertNormals_faces_finalize_cb(void *userdata, int ptrIdx,
+ const ParallelRangeTLS *UNUSED(tls))
{
CCGSubSurfCalcSubdivData *data = userdata;
@@ -265,7 +267,8 @@ static void ccgSubSurf__calcVertNormals_faces_finalize_cb(void *userdata, int pt
}
}
-static void ccgSubSurf__calcVertNormals_edges_accumulate_cb(void *userdata, int ptrIdx)
+static void ccgSubSurf__calcVertNormals_edges_accumulate_cb(void *userdata, int ptrIdx,
+ const ParallelRangeTLS *UNUSED(tls))
{
CCGSubSurfCalcSubdivData *data = userdata;
@@ -396,7 +399,8 @@ static void ccgSubSurf__calcVertNormals(CCGSubSurf *ss,
}
-static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_midpoints_cb(void *userdata, int ptrIdx)
+static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_midpoints_cb(void *userdata, int ptrIdx,
+ const ParallelRangeTLS *UNUSED(tls))
{
CCGSubSurfCalcSubdivData *data = userdata;
@@ -483,7 +487,8 @@ static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_midpoints_cb(void *
}
}
-static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_centerpoints_shift_cb(void *userdata, int ptrIdx)
+static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_centerpoints_shift_cb(void *userdata, int ptrIdx,
+ const ParallelRangeTLS *UNUSED(tls))
{
CCGSubSurfCalcSubdivData *data = userdata;
@@ -588,7 +593,8 @@ static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_centerpoints_shift_
}
}
-static void ccgSubSurf__calcSubdivLevel_verts_copydata_cb(void *userdata, int ptrIdx)
+static void ccgSubSurf__calcSubdivLevel_verts_copydata_cb(void *userdata, int ptrIdx,
+ const ParallelRangeTLS *UNUSED(tls))
{
CCGSubSurfCalcSubdivData *data = userdata;
diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c
index 310255a15c1..67153564a0f 100644
--- a/source/blender/blenkernel/intern/colortools.c
+++ b/source/blender/blenkernel/intern/colortools.c
@@ -1165,7 +1165,7 @@ typedef struct ScopesUpdateDataChunk {
float min[3], max[3];
} ScopesUpdateDataChunk;
-static void scopes_update_cb(void *userdata, void *userdata_chunk, const int y, const int UNUSED(threadid))
+static void scopes_update_cb(void *userdata, const int y, const ParallelRangeTLS *tls)
{
const ScopesUpdateData *data = userdata;
@@ -1175,7 +1175,7 @@ static void scopes_update_cb(void *userdata, void *userdata_chunk, const int y,
const unsigned char *display_buffer = data->display_buffer;
const int ycc_mode = data->ycc_mode;
- ScopesUpdateDataChunk *data_chunk = userdata_chunk;
+ ScopesUpdateDataChunk *data_chunk = tls->userdata_chunk;
unsigned int *bin_lum = data_chunk->bin_lum;
unsigned int *bin_r = data_chunk->bin_r;
unsigned int *bin_g = data_chunk->bin_g;
diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c
index b44ee21432c..81a721e77b9 100644
--- a/source/blender/blenkernel/intern/dynamicpaint.c
+++ b/source/blender/blenkernel/intern/dynamicpaint.c
@@ -611,11 +611,11 @@ static void freeGrid(PaintSurfaceData *data)
bData->grid = NULL;
}
-static void grid_bound_insert_cb_ex(void *userdata, void *userdata_chunk, const int i, const int UNUSED(thread_id))
+static void grid_bound_insert_cb_ex(void *userdata, const int i, const ParallelRangeTLS *tls)
{
PaintBakeData *bData = userdata;
- Bounds3D *grid_bound = userdata_chunk;
+ Bounds3D *grid_bound = tls->userdata_chunk;
boundInsert(grid_bound, bData->realCoord[bData->s_pos[i]].v);
}
@@ -631,12 +631,12 @@ static void grid_bound_insert_finalize(void *userdata, void *userdata_chunk)
boundInsert(&grid->grid_bounds, grid_bound->max);
}
-static void grid_cell_points_cb_ex(void *userdata, void *userdata_chunk, const int i, const int UNUSED(thread_id))
+static void grid_cell_points_cb_ex(void *userdata, const int i, const ParallelRangeTLS *tls)
{
PaintBakeData *bData = userdata;
VolumeGrid *grid = bData->grid;
int *temp_t_index = grid->temp_t_index;
- int *s_num = userdata_chunk;
+ int *s_num = tls->userdata_chunk;
int co[3];
@@ -664,7 +664,7 @@ static void grid_cell_points_finalize(void *userdata, void *userdata_chunk)
}
}
-static void grid_cell_bounds_cb(void *userdata, const int x)
+static void grid_cell_bounds_cb(void *userdata, const int x, const ParallelRangeTLS *UNUSED(tls))
{
PaintBakeData *bData = userdata;
VolumeGrid *grid = bData->grid;
@@ -1397,7 +1397,8 @@ typedef struct DynamicPaintSetInitColorData {
const bool scene_color_manage;
} DynamicPaintSetInitColorData;
-static void dynamic_paint_set_init_color_tex_to_vcol_cb(void *userdata, const int i)
+static void dynamic_paint_set_init_color_tex_to_vcol_cb(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintSetInitColorData *data = userdata;
@@ -1431,7 +1432,8 @@ static void dynamic_paint_set_init_color_tex_to_vcol_cb(void *userdata, const in
}
}
-static void dynamic_paint_set_init_color_tex_to_imseq_cb(void *userdata, const int i)
+static void dynamic_paint_set_init_color_tex_to_imseq_cb(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintSetInitColorData *data = userdata;
@@ -1469,7 +1471,8 @@ static void dynamic_paint_set_init_color_tex_to_imseq_cb(void *userdata, const i
pPoint[i].color[3] = texres.tin;
}
-static void dynamic_paint_set_init_color_vcol_to_imseq_cb(void *userdata, const int i)
+static void dynamic_paint_set_init_color_vcol_to_imseq_cb(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintSetInitColorData *data = userdata;
@@ -1673,7 +1676,8 @@ typedef struct DynamicPaintModifierApplyData {
MLoopCol *mloopcol_preview;
} DynamicPaintModifierApplyData;
-static void dynamic_paint_apply_surface_displace_cb(void *userdata, const int i)
+static void dynamic_paint_apply_surface_displace_cb(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintModifierApplyData *data = userdata;
@@ -1708,7 +1712,8 @@ static void dynamicPaint_applySurfaceDisplace(DynamicPaintSurface *surface, Deri
}
}
-static void dynamic_paint_apply_surface_vpaint_blend_cb(void *userdata, const int i)
+static void dynamic_paint_apply_surface_vpaint_blend_cb(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintModifierApplyData *data = userdata;
@@ -1719,7 +1724,8 @@ static void dynamic_paint_apply_surface_vpaint_blend_cb(void *userdata, const in
blendColors(pPoint[i].color, pPoint[i].color[3], pPoint[i].e_color, pPoint[i].e_color[3], fcolor[i]);
}
-static void dynamic_paint_apply_surface_vpaint_cb(void *userdata, const int p_index)
+static void dynamic_paint_apply_surface_vpaint_cb(void *userdata, const int p_index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintModifierApplyData *data = userdata;
Object *ob = data->ob;
@@ -1789,7 +1795,8 @@ static void dynamic_paint_apply_surface_vpaint_cb(void *userdata, const int p_in
}
}
-static void dynamic_paint_apply_surface_wave_cb(void *userdata, const int i)
+static void dynamic_paint_apply_surface_wave_cb(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintModifierApplyData *data = userdata;
@@ -2106,7 +2113,8 @@ typedef struct DynamicPaintCreateUVSurfaceData {
uint32_t *active_points;
} DynamicPaintCreateUVSurfaceData;
-static void dynamic_paint_create_uv_surface_direct_cb(void *userdata, const int ty)
+static void dynamic_paint_create_uv_surface_direct_cb(void *userdata, const int ty,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintCreateUVSurfaceData *data = userdata;
@@ -2203,7 +2211,8 @@ static void dynamic_paint_create_uv_surface_direct_cb(void *userdata, const int
}
}
-static void dynamic_paint_create_uv_surface_neighbor_cb(void *userdata, const int ty)
+static void dynamic_paint_create_uv_surface_neighbor_cb(void *userdata, const int ty,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintCreateUVSurfaceData *data = userdata;
@@ -2995,7 +3004,8 @@ typedef struct DynamicPaintOutputSurfaceImageData {
ImBuf *ibuf;
} DynamicPaintOutputSurfaceImageData;
-static void dynamic_paint_output_surface_image_paint_cb(void *userdata, const int index)
+static void dynamic_paint_output_surface_image_paint_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintOutputSurfaceImageData *data = userdata;
@@ -3015,7 +3025,8 @@ static void dynamic_paint_output_surface_image_paint_cb(void *userdata, const in
}
}
-static void dynamic_paint_output_surface_image_displace_cb(void *userdata, const int index)
+static void dynamic_paint_output_surface_image_displace_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintOutputSurfaceImageData *data = userdata;
@@ -3039,7 +3050,8 @@ static void dynamic_paint_output_surface_image_displace_cb(void *userdata, const
ibuf->rect_float[pos + 3] = 1.0f;
}
-static void dynamic_paint_output_surface_image_wave_cb(void *userdata, const int index)
+static void dynamic_paint_output_surface_image_wave_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintOutputSurfaceImageData *data = userdata;
@@ -3061,7 +3073,8 @@ static void dynamic_paint_output_surface_image_wave_cb(void *userdata, const int
ibuf->rect_float[pos + 3] = 1.0f;
}
-static void dynamic_paint_output_surface_image_wetmap_cb(void *userdata, const int index)
+static void dynamic_paint_output_surface_image_wetmap_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintOutputSurfaceImageData *data = userdata;
@@ -3549,7 +3562,8 @@ typedef struct DynamicPaintBrushVelocityData {
const float timescale;
} DynamicPaintBrushVelocityData;
-static void dynamic_paint_brush_velocity_compute_cb(void *userdata, const int i)
+static void dynamic_paint_brush_velocity_compute_cb(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintBrushVelocityData *data = userdata;
@@ -3699,7 +3713,7 @@ typedef struct DynamicPaintPaintData {
* Paint a brush object mesh to the surface
*/
static void dynamic_paint_paint_mesh_cell_point_cb_ex(
- void *userdata, void *UNUSED(userdata_chunk), const int id, const int UNUSED(threadid))
+ void *userdata, const int id, const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintPaintData *data = userdata;
@@ -4140,7 +4154,7 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface,
* Paint a particle system to the surface
*/
static void dynamic_paint_paint_particle_cell_point_cb_ex(
- void *userdata, void *UNUSED(userdata_chunk), const int id, const int UNUSED(threadid))
+ void *userdata, const int id, const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintPaintData *data = userdata;
@@ -4415,7 +4429,7 @@ static int dynamicPaint_paintParticles(DynamicPaintSurface *surface,
/* paint a single point of defined proximity radius to the surface */
static void dynamic_paint_paint_single_point_cb_ex(
- void *userdata, void *UNUSED(userdata_chunk), const int index, const int UNUSED(threadid))
+ void *userdata, const int index, const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintPaintData *data = userdata;
@@ -4561,7 +4575,8 @@ static int dynamicPaint_paintSinglePoint(
* Calculate current frame distances and directions for adjacency data
*/
-static void dynamic_paint_prepare_adjacency_cb(void *userdata, const int index)
+static void dynamic_paint_prepare_adjacency_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
PaintSurfaceData *sData = userdata;
PaintBakeData *bData = sData->bData;
@@ -4788,7 +4803,8 @@ typedef struct DynamicPaintEffectData {
* Prepare data required by effects for current frame.
* Returns number of steps required
*/
-static void dynamic_paint_prepare_effect_cb(void *userdata, const int index)
+static void dynamic_paint_prepare_effect_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintEffectData *data = userdata;
@@ -4893,7 +4909,8 @@ static int dynamicPaint_prepareEffectStep(
/**
* Processes active effect step.
*/
-static void dynamic_paint_effect_spread_cb(void *userdata, const int index)
+static void dynamic_paint_effect_spread_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintEffectData *data = userdata;
@@ -4938,7 +4955,8 @@ static void dynamic_paint_effect_spread_cb(void *userdata, const int index)
}
}
-static void dynamic_paint_effect_shrink_cb(void *userdata, const int index)
+static void dynamic_paint_effect_shrink_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintEffectData *data = userdata;
@@ -4988,7 +5006,8 @@ static void dynamic_paint_effect_shrink_cb(void *userdata, const int index)
}
}
-static void dynamic_paint_effect_drip_cb(void *userdata, const int index)
+static void dynamic_paint_effect_drip_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintEffectData *data = userdata;
@@ -5166,7 +5185,8 @@ static void dynamicPaint_doEffectStep(
}
}
-static void dynamic_paint_border_cb(void *userdata, const int b_index)
+static void dynamic_paint_border_cb(void *userdata, const int b_index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintEffectData *data = userdata;
@@ -5240,7 +5260,8 @@ static void dynamicPaint_doBorderStep(DynamicPaintSurface *surface)
0, sData->adj_data->total_border, &data, dynamic_paint_border_cb, sData->adj_data->total_border > 1000);
}
-static void dynamic_paint_wave_step_cb(void *userdata, const int index)
+static void dynamic_paint_wave_step_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintEffectData *data = userdata;
@@ -5403,7 +5424,8 @@ typedef struct DynamicPaintDissolveDryData {
const float timescale;
} DynamicPaintDissolveDryData;
-static void dynamic_paint_surface_pre_step_cb(void *userdata, const int index)
+static void dynamic_paint_surface_pre_step_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintDissolveDryData *data = userdata;
@@ -5526,7 +5548,8 @@ typedef struct DynamicPaintGenerateBakeData {
const bool new_bdata;
} DynamicPaintGenerateBakeData;
-static void dynamic_paint_generate_bake_data_cb(void *userdata, const int index)
+static void dynamic_paint_generate_bake_data_cb(void *userdata, const int index,
+ const ParallelRangeTLS *UNUSED(tls))
{
const DynamicPaintGenerateBakeData *data = userdata;
diff --git a/source/blender/blenkernel/intern/mask_rasterize.c b/source/blender/blenkernel/intern/mask_rasterize.c
index 104bb0c07a6..489f1965884 100644
--- a/source/blender/blenkernel/intern/mask_rasterize.c
+++ b/source/blender/blenkernel/intern/mask_rasterize.c
@@ -1434,7 +1434,8 @@ typedef struct MaskRasterizeBufferData {
float *buffer;
} MaskRasterizeBufferData;
-static void maskrasterize_buffer_cb(void *userdata, int y)
+static void maskrasterize_buffer_cb(void *userdata, int y,
+ const ParallelRangeTLS *UNUSED(tls))
{
MaskRasterizeBufferData *data = userdata;
diff --git a/source/blender/blenkernel/intern/mesh_evaluate.c b/source/blender/blenkernel/intern/mesh_evaluate.c
index 35757557f76..b58bea941e5 100644
--- a/source/blender/blenkernel/intern/mesh_evaluate.c
+++ b/source/blender/blenkernel/intern/mesh_evaluate.c
@@ -177,7 +177,8 @@ typedef struct MeshCalcNormalsData {
float (*vnors)[3];
} MeshCalcNormalsData;
-static void mesh_calc_normals_poly_cb(void *userdata, const int pidx)
+static void mesh_calc_normals_poly_cb(void *userdata, const int pidx,
+ const ParallelRangeTLS *UNUSED(tls))
{
MeshCalcNormalsData *data = userdata;
const MPoly *mp = &data->mpolys[pidx];
@@ -185,7 +186,8 @@ static void mesh_calc_normals_poly_cb(void *userdata, const int pidx)
BKE_mesh_calc_poly_normal(mp, data->mloop + mp->loopstart, data->mverts, data->pnors[pidx]);
}
-static void mesh_calc_normals_poly_prepare_cb(void *userdata, const int pidx)
+static void mesh_calc_normals_poly_prepare_cb(void *userdata, const int pidx,
+ const ParallelRangeTLS *UNUSED(tls))
{
MeshCalcNormalsData *data = userdata;
const MPoly *mp = &data->mpolys[pidx];
@@ -247,14 +249,16 @@ static void mesh_calc_normals_poly_prepare_cb(void *userdata, const int pidx)
}
}
-static void mesh_calc_normals_poly_accum_cb(void *userdata, const int lidx)
+static void mesh_calc_normals_poly_accum_cb(void *userdata, const int lidx,
+ const ParallelRangeTLS *UNUSED(tls))
{
MeshCalcNormalsData *data = userdata;
add_v3_v3(data->vnors[data->mloop[lidx].v], data->lnors_weighted[lidx]);
}
-static void mesh_calc_normals_poly_finalize_cb(void *userdata, const int vidx)
+static void mesh_calc_normals_poly_finalize_cb(void *userdata, const int vidx,
+ const ParallelRangeTLS *UNUSED(tls))
{
MeshCalcNormalsData *data = userdata;
diff --git a/source/blender/blenkernel/intern/ocean.c b/source/blender/blenkernel/intern/ocean.c
index 537c8926a5b..53e4119987f 100644
--- a/source/blender/blenkernel/intern/ocean.c
+++ b/source/blender/blenkernel/intern/ocean.c
@@ -502,7 +502,8 @@ typedef struct OceanSimulateData {
float chop_amount;
} OceanSimulateData;
-static void ocean_compute_htilda(void *userdata, const int i)
+static void ocean_compute_htilda(void *userdata, const int i,
+ const ParallelRangeTLS *UNUSED(tls))
{
OceanSimulateData *osd = userdata;
const Ocean *o = osd->o;
diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c
index 38eb861599a..505f6c63baf 100644
--- a/source/blender/blenkernel/intern/particle_system.c
+++ b/source/blender/blenkernel/intern/particle_system.c
@@ -3371,14 +3371,14 @@ typedef struct DynamicStepSolverTaskData {
} DynamicStepSolverTaskData;
static void dynamics_step_sph_ddr_task_cb_ex(
- void *userdata, void *userdata_chunk, const int p, const int UNUSED(thread_id))
+ void *userdata, const int p, const ParallelRangeTLS *tls)
{
DynamicStepSolverTaskData *data = userdata;
ParticleSimulationData *sim = data->sim;
ParticleSystem *psys = sim->psys;
ParticleSettings *part = psys->part;
- SPHData *sphdata = userdata_chunk;
+ SPHData *sphdata = tls->userdata_chunk;
ParticleData *pa;
@@ -3405,7 +3405,7 @@ static void dynamics_step_sph_ddr_task_cb_ex(
}
static void dynamics_step_sph_classical_basic_integrate_task_cb_ex(
- void *userdata, void *UNUSED(userdata_chunk), const int p, const int UNUSED(thread_id))
+ void *userdata, const int p, const ParallelRangeTLS *UNUSED(tls))
{
DynamicStepSolverTaskData *data = userdata;
ParticleSimulationData *sim = data->sim;
@@ -3421,13 +3421,13 @@ static void dynamics_step_sph_classical_basic_integrate_task_cb_ex(
}
static void dynamics_step_sph_classical_calc_density_task_cb_ex(
- void *userdata, void *userdata_chunk, const int p, const int UNUSED(thread_id))
+ void *userdata, const int p, const ParallelRangeTLS *tls)
{
DynamicStepSolverTaskData *data = userdata;
ParticleSimulationData *sim = data->sim;
ParticleSystem *psys = sim->psys;
- SPHData *sphdata = userdata_chunk;
+ SPHData *sphdata = tls->userdata_chunk;
ParticleData *pa;
@@ -3439,14 +3439,14 @@ static void dynamics_step_sph_classical_calc_density_task_cb_ex(
}
static void dynamics_step_sph_classical_integrate_task_cb_ex(
- void *userdata, void *userdata_chunk, const int p, const int UNUSED(thread_id))
+ void *userdata, const int p, const ParallelRangeTLS *tls)
{
DynamicStepSolverTaskData *data = userdata;
ParticleSimulationData *sim = data->sim;
ParticleSystem *psys = sim->psys;
ParticleSettings *part = psys->part;
- SPHData *sphdata = userdata_chunk;
+ SPHData *sphdata = tls->userdata_chunk;
ParticleData *pa;
diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c
index 39d1d8e8510..e476ccbc48b 100644
--- a/source/blender/blenkernel/intern/pbvh.c
+++ b/source/blender/blenkernel/intern/pbvh.c
@@ -938,7 +938,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;
@@ -991,7 +992,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;
@@ -1057,7 +1059,8 @@ static void pbvh_update_normals(PBVH *bvh, PBVHNode **nodes,
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;
diff --git a/source/blender/blenkernel/intern/shrinkwrap.c b/source/blender/blenkernel/intern/shrinkwrap.c
index f9d1793d7cb..09b0dc569cb 100644
--- a/source/blender/blenkernel/intern/shrinkwrap.c
+++ b/source/blender/blenkernel/intern/shrinkwrap.c
@@ -88,13 +88,13 @@ typedef struct ShrinkwrapCalcCBData {
* for each vertex performs a nearest vertex search on the tree
*/
static void shrinkwrap_calc_nearest_vertex_cb_ex(
- void *userdata, void *userdata_chunk, const int i, const int UNUSED(threadid))
+ void *userdata, const int i, const ParallelRangeTLS *tls)
{
ShrinkwrapCalcCBData *data = userdata;
ShrinkwrapCalcData *calc = data->calc;
BVHTreeFromMesh *treeData = data->treeData;
- BVHTreeNearest *nearest = userdata_chunk;
+ BVHTreeNearest *nearest = tls->userdata_chunk;
float *co = calc->vertexCos[i];
float tmp_co[3];
@@ -257,7 +257,7 @@ bool BKE_shrinkwrap_project_normal(
}
static void shrinkwrap_calc_normal_projection_cb_ex(
- void *userdata, void *userdata_chunk, const int i, const int UNUSED(threadid))
+ void *userdata, const int i, const ParallelRangeTLS *tls)
{
ShrinkwrapCalcCBData *data = userdata;
@@ -272,7 +272,7 @@ static void shrinkwrap_calc_normal_projection_cb_ex(
float *proj_axis = data->proj_axis;
SpaceTransform *local2aux = data->local2aux;
- BVHTreeRayHit *hit = userdata_chunk;
+ BVHTreeRayHit *hit = tls->userdata_chunk;
const float proj_limit_squared = calc->smd->projLimit * calc->smd->projLimit;
float *co = calc->vertexCos[i];
@@ -495,13 +495,13 @@ static void shrinkwrap_calc_normal_projection(ShrinkwrapCalcData *calc, bool for
* NN matches for each vertex
*/
static void shrinkwrap_calc_nearest_surface_point_cb_ex(
- void *userdata, void *userdata_chunk, const int i, const int UNUSED(threadid))
+ void *userdata, const int i, const ParallelRangeTLS *tls)
{
ShrinkwrapCalcCBData *data = userdata;
ShrinkwrapCalcData *calc = data->calc;
BVHTreeFromMesh *treeData = data->treeData;
- BVHTreeNearest *nearest = userdata_chunk;
+ BVHTreeNearest *nearest = tls->userdata_chunk;
float *co = calc->vertexCos[i];
float tmp_co[3];
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index fcf4724bd1c..37b9466645d 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -738,7 +738,7 @@ typedef struct ObstaclesFromDMData {
int *num_obstacles;
} ObstaclesFromDMData;
-static void obstacles_from_derivedmesh_task_cb(void *userdata, const int z)
+static void obstacles_from_derivedmesh_task_cb(void *userdata, const int z, const ParallelRangeTLS *UNUSED(tls))
{
ObstaclesFromDMData *data = userdata;
SmokeDomainSettings *sds = data->sds;
@@ -1184,7 +1184,7 @@ typedef struct EmitFromParticlesData {
float hr_smooth;
} EmitFromParticlesData;
-static void emit_from_particles_task_cb(void *userdata, const int z)
+static void emit_from_particles_task_cb(void *userdata, const int z, const ParallelRangeTLS *UNUSED(tls))
{
EmitFromParticlesData *data = userdata;
SmokeFlowSettings *sfs = data->sfs;
@@ -1567,7 +1567,7 @@ typedef struct EmitFromDMData {
int *min, *max, *res;
} EmitFromDMData;
-static void emit_from_derivedmesh_task_cb(void *userdata, const int z)
+static void emit_from_derivedmesh_task_cb(void *userdata, const int z, const ParallelRangeTLS *UNUSED(tls))
{
EmitFromDMData *data = userdata;
EmissionMap *em = data->em;
@@ -2436,7 +2436,7 @@ typedef struct UpdateEffectorsData {
unsigned char *obstacle;
} UpdateEffectorsData;
-static void update_effectors_task_cb(void *userdata, const int x)
+static void update_effectors_task_cb(void *userdata, const int x, const ParallelRangeTLS *UNUSED(tls))
{
UpdateEffectorsData *data = userdata;
SmokeDomainSettings *sds = data->sds;
diff --git a/source/blender/blenkernel/intern/tracking_auto.c b/source/blender/blenkernel/intern/tracking_auto.c
index 40234bacdfe..5dc350640c0 100644
--- a/source/blender/blenkernel/intern/tracking_auto.c
+++ b/source/blender/blenkernel/intern/tracking_auto.c
@@ -432,7 +432,9 @@ AutoTrackContext *BKE_autotrack_context_new(MovieClip *clip,
return context;
}
-static void autotrack_context_step_cb(void *userdata, int track)
+static void autotrack_context_step_cb(void *userdata,
+ int track,
+ const ParallelRangeTLS *UNUSED(tls))
{
AutoTrackContext *context = userdata;
const int frame_delta = context->backwards ? -1 : 1;
diff --git a/source/blender/blenkernel/intern/tracking_stabilize.c b/source/blender/blenkernel/intern/tracking_stabilize.c
index edddeb41cc8..9e8f01df1d5 100644
--- a/source/blender/blenkernel/intern/tracking_stabilize.c
+++ b/source/blender/blenkernel/intern/tracking_stabilize.c
@@ -1503,7 +1503,10 @@ typedef struct TrackingStabilizeFrameInterpolationData {
interpolation_func interpolation;
} TrackingStabilizeFrameInterpolationData;
-static void tracking_stabilize_frame_interpolation_cb(void *userdata, int j)
+static void tracking_stabilize_frame_interpolation_cb(
+ void *userdata,
+ int j,
+ const ParallelRangeTLS *UNUSED(tls))
{
TrackingStabilizeFrameInterpolationData *data = userdata;
ImBuf *ibuf = data->ibuf;