diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-10 15:22:03 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2018-01-10 15:22:03 +0300 |
commit | 5d38c141168fcc4dc6aa61ee62a28d59dedf889a (patch) | |
tree | 06a301cb2f837b4da0ca461e333c156bfe91ec0a /source/blender | |
parent | f59303bead2ae4a25132edadf217a64cdd581dc5 (diff) | |
parent | 2737837b09d7b9434c33acf98421967193b7c9df (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender')
37 files changed, 483 insertions, 197 deletions
diff --git a/source/blender/blenkernel/intern/CCGSubSurf_legacy.c b/source/blender/blenkernel/intern/CCGSubSurf_legacy.c index 363b7cff453..d567b50af56 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf_legacy.c +++ b/source/blender/blenkernel/intern/CCGSubSurf_legacy.c @@ -136,8 +136,10 @@ typedef struct CCGSubSurfCalcSubdivData { int curLvl; } CCGSubSurfCalcSubdivData; -static void ccgSubSurf__calcVertNormals_faces_accumulate_cb(void *userdata, int ptrIdx, - const ParallelRangeTLS *UNUSED(tls)) +static void ccgSubSurf__calcVertNormals_faces_accumulate_cb( + void *__restrict userdata, + const int ptrIdx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { CCGSubSurfCalcSubdivData *data = userdata; @@ -228,8 +230,10 @@ static void ccgSubSurf__calcVertNormals_faces_accumulate_cb(void *userdata, int } } -static void ccgSubSurf__calcVertNormals_faces_finalize_cb(void *userdata, int ptrIdx, - const ParallelRangeTLS *UNUSED(tls)) +static void ccgSubSurf__calcVertNormals_faces_finalize_cb( + void *__restrict userdata, + const int ptrIdx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { CCGSubSurfCalcSubdivData *data = userdata; @@ -267,8 +271,10 @@ static void ccgSubSurf__calcVertNormals_faces_finalize_cb(void *userdata, int pt } } -static void ccgSubSurf__calcVertNormals_edges_accumulate_cb(void *userdata, int ptrIdx, - const ParallelRangeTLS *UNUSED(tls)) +static void ccgSubSurf__calcVertNormals_edges_accumulate_cb( + void *__restrict userdata, + const int ptrIdx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { CCGSubSurfCalcSubdivData *data = userdata; @@ -414,8 +420,10 @@ static void ccgSubSurf__calcVertNormals(CCGSubSurf *ss, } -static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_midpoints_cb(void *userdata, int ptrIdx, - const ParallelRangeTLS *UNUSED(tls)) +static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_midpoints_cb( + void *__restrict userdata, + const int ptrIdx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { CCGSubSurfCalcSubdivData *data = userdata; @@ -502,8 +510,10 @@ static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_midpoints_cb(void * } } -static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_centerpoints_shift_cb(void *userdata, int ptrIdx, - const ParallelRangeTLS *UNUSED(tls)) +static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_centerpoints_shift_cb( + void *__restrict userdata, + const int ptrIdx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { CCGSubSurfCalcSubdivData *data = userdata; @@ -608,8 +618,10 @@ static void ccgSubSurf__calcSubdivLevel_interior_faces_edges_centerpoints_shift_ } } -static void ccgSubSurf__calcSubdivLevel_verts_copydata_cb(void *userdata, int ptrIdx, - const ParallelRangeTLS *UNUSED(tls)) +static void ccgSubSurf__calcSubdivLevel_verts_copydata_cb( + void *__restrict userdata, + const int ptrIdx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { CCGSubSurfCalcSubdivData *data = userdata; diff --git a/source/blender/blenkernel/intern/colortools.c b/source/blender/blenkernel/intern/colortools.c index 46d06a3ac78..0fe429312db 100644 --- a/source/blender/blenkernel/intern/colortools.c +++ b/source/blender/blenkernel/intern/colortools.c @@ -1165,7 +1165,9 @@ typedef struct ScopesUpdateDataChunk { float min[3], max[3]; } ScopesUpdateDataChunk; -static void scopes_update_cb(void *userdata, const int y, const ParallelRangeTLS *tls) +static void scopes_update_cb(void *__restrict userdata, + const int y, + const ParallelRangeTLS *__restrict tls) { const ScopesUpdateData *data = userdata; @@ -1259,7 +1261,8 @@ static void scopes_update_cb(void *userdata, const int y, const ParallelRangeTLS } } -static void scopes_update_finalize(void *userdata, void *userdata_chunk) +static void scopes_update_finalize(void *__restrict userdata, + void *__restrict userdata_chunk) { const ScopesUpdateData *data = userdata; const ScopesUpdateDataChunk *data_chunk = userdata_chunk; diff --git a/source/blender/blenkernel/intern/dynamicpaint.c b/source/blender/blenkernel/intern/dynamicpaint.c index 0773d069767..f8d6fe1fdf0 100644 --- a/source/blender/blenkernel/intern/dynamicpaint.c +++ b/source/blender/blenkernel/intern/dynamicpaint.c @@ -604,7 +604,9 @@ static void freeGrid(PaintSurfaceData *data) bData->grid = NULL; } -static void grid_bound_insert_cb_ex(void *userdata, const int i, const ParallelRangeTLS *tls) +static void grid_bound_insert_cb_ex(void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict tls) { PaintBakeData *bData = userdata; @@ -613,7 +615,8 @@ static void grid_bound_insert_cb_ex(void *userdata, const int i, const ParallelR boundInsert(grid_bound, bData->realCoord[bData->s_pos[i]].v); } -static void grid_bound_insert_finalize(void *userdata, void *userdata_chunk) +static void grid_bound_insert_finalize(void *__restrict userdata, + void *__restrict userdata_chunk) { PaintBakeData *bData = userdata; VolumeGrid *grid = bData->grid; @@ -624,7 +627,9 @@ 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, const int i, const ParallelRangeTLS *tls) +static void grid_cell_points_cb_ex(void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict tls) { PaintBakeData *bData = userdata; VolumeGrid *grid = bData->grid; @@ -643,7 +648,8 @@ static void grid_cell_points_cb_ex(void *userdata, const int i, const ParallelRa s_num[temp_t_index[i]]++; } -static void grid_cell_points_finalize(void *userdata, void *userdata_chunk) +static void grid_cell_points_finalize(void *__restrict userdata, + void *__restrict userdata_chunk) { PaintBakeData *bData = userdata; VolumeGrid *grid = bData->grid; @@ -657,7 +663,9 @@ static void grid_cell_points_finalize(void *userdata, void *userdata_chunk) } } -static void grid_cell_bounds_cb(void *userdata, const int x, const ParallelRangeTLS *UNUSED(tls)) +static void grid_cell_bounds_cb(void *__restrict userdata, + const int x, + const ParallelRangeTLS *__restrict UNUSED(tls)) { PaintBakeData *bData = userdata; VolumeGrid *grid = bData->grid; @@ -1417,8 +1425,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_set_init_color_tex_to_vcol_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintSetInitColorData *data = userdata; @@ -1452,8 +1462,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_set_init_color_tex_to_imseq_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintSetInitColorData *data = userdata; @@ -1491,8 +1503,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_set_init_color_vcol_to_imseq_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintSetInitColorData *data = userdata; @@ -1712,8 +1726,10 @@ typedef struct DynamicPaintModifierApplyData { MLoopCol *mloopcol_preview; } DynamicPaintModifierApplyData; -static void dynamic_paint_apply_surface_displace_cb(void *userdata, const int i, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_apply_surface_displace_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintModifierApplyData *data = userdata; @@ -1753,8 +1769,10 @@ static void dynamicPaint_applySurfaceDisplace(DynamicPaintSurface *surface, Deri } } -static void dynamic_paint_apply_surface_vpaint_blend_cb(void *userdata, const int i, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_apply_surface_vpaint_blend_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintModifierApplyData *data = userdata; @@ -1765,8 +1783,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_apply_surface_vpaint_cb( + void *__restrict userdata, + const int p_index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintModifierApplyData *data = userdata; Object *ob = data->ob; @@ -1836,8 +1856,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_apply_surface_wave_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintModifierApplyData *data = userdata; @@ -2179,8 +2201,10 @@ typedef struct DynamicPaintCreateUVSurfaceData { uint32_t *active_points; } DynamicPaintCreateUVSurfaceData; -static void dynamic_paint_create_uv_surface_direct_cb(void *userdata, const int ty, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_create_uv_surface_direct_cb( + void *__restrict userdata, + const int ty, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintCreateUVSurfaceData *data = userdata; @@ -2277,8 +2301,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_create_uv_surface_neighbor_cb( + void *__restrict userdata, + const int ty, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintCreateUVSurfaceData *data = userdata; @@ -3086,8 +3112,10 @@ typedef struct DynamicPaintOutputSurfaceImageData { ImBuf *ibuf; } DynamicPaintOutputSurfaceImageData; -static void dynamic_paint_output_surface_image_paint_cb(void *userdata, const int index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_output_surface_image_paint_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintOutputSurfaceImageData *data = userdata; @@ -3107,8 +3135,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_output_surface_image_displace_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintOutputSurfaceImageData *data = userdata; @@ -3132,8 +3162,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_output_surface_image_wave_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintOutputSurfaceImageData *data = userdata; @@ -3155,8 +3187,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_output_surface_image_wetmap_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintOutputSurfaceImageData *data = userdata; @@ -3676,8 +3710,10 @@ typedef struct DynamicPaintBrushVelocityData { const float timescale; } DynamicPaintBrushVelocityData; -static void dynamic_paint_brush_velocity_compute_cb(void *userdata, const int i, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_brush_velocity_compute_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintBrushVelocityData *data = userdata; @@ -3834,7 +3870,9 @@ typedef struct DynamicPaintPaintData { * Paint a brush object mesh to the surface */ static void dynamic_paint_paint_mesh_cell_point_cb_ex( - void *userdata, const int id, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int id, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintPaintData *data = userdata; @@ -4279,7 +4317,9 @@ static int dynamicPaint_paintMesh(const struct EvaluationContext *eval_ctx, Dyna * Paint a particle system to the surface */ static void dynamic_paint_paint_particle_cell_point_cb_ex( - void *userdata, const int id, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int id, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintPaintData *data = userdata; @@ -4558,7 +4598,9 @@ 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, const int index, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintPaintData *data = userdata; @@ -4708,8 +4750,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_prepare_adjacency_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { PaintSurfaceData *sData = userdata; PaintBakeData *bData = sData->bData; @@ -4941,8 +4985,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_prepare_effect_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintEffectData *data = userdata; @@ -5052,8 +5098,10 @@ static int dynamicPaint_prepareEffectStep( /** * Processes active effect step. */ -static void dynamic_paint_effect_spread_cb(void *userdata, const int index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_effect_spread_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintEffectData *data = userdata; @@ -5098,8 +5146,10 @@ static void dynamic_paint_effect_spread_cb(void *userdata, const int index, } } -static void dynamic_paint_effect_shrink_cb(void *userdata, const int index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_effect_shrink_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintEffectData *data = userdata; @@ -5149,8 +5199,10 @@ static void dynamic_paint_effect_shrink_cb(void *userdata, const int index, } } -static void dynamic_paint_effect_drip_cb(void *userdata, const int index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_effect_drip_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintEffectData *data = userdata; @@ -5343,8 +5395,10 @@ static void dynamicPaint_doEffectStep( } } -static void dynamic_paint_border_cb(void *userdata, const int b_index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_border_cb( + void *__restrict userdata, + const int b_index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintEffectData *data = userdata; @@ -5423,8 +5477,10 @@ static void dynamicPaint_doBorderStep(DynamicPaintSurface *surface) &settings); } -static void dynamic_paint_wave_step_cb(void *userdata, const int index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_wave_step_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintEffectData *data = userdata; @@ -5591,8 +5647,10 @@ typedef struct DynamicPaintDissolveDryData { const float timescale; } DynamicPaintDissolveDryData; -static void dynamic_paint_surface_pre_step_cb(void *userdata, const int index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_surface_pre_step_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const DynamicPaintDissolveDryData *data = userdata; @@ -5715,8 +5773,10 @@ typedef struct DynamicPaintGenerateBakeData { const bool new_bdata; } DynamicPaintGenerateBakeData; -static void dynamic_paint_generate_bake_data_cb(void *userdata, const int index, - const ParallelRangeTLS *UNUSED(tls)) +static void dynamic_paint_generate_bake_data_cb( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict 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 6efcb27c0f5..76d16334630 100644 --- a/source/blender/blenkernel/intern/mask_rasterize.c +++ b/source/blender/blenkernel/intern/mask_rasterize.c @@ -1434,8 +1434,10 @@ typedef struct MaskRasterizeBufferData { float *buffer; } MaskRasterizeBufferData; -static void maskrasterize_buffer_cb(void *userdata, int y, - const ParallelRangeTLS *UNUSED(tls)) +static void maskrasterize_buffer_cb( + void *__restrict userdata, + const int y, + const ParallelRangeTLS *__restrict UNUSED(tls)) { MaskRasterizeBufferData *data = userdata; diff --git a/source/blender/blenkernel/intern/mesh_evaluate.c b/source/blender/blenkernel/intern/mesh_evaluate.c index f822ea836aa..f25b6ed41c7 100644 --- a/source/blender/blenkernel/intern/mesh_evaluate.c +++ b/source/blender/blenkernel/intern/mesh_evaluate.c @@ -177,8 +177,10 @@ typedef struct MeshCalcNormalsData { float (*vnors)[3]; } MeshCalcNormalsData; -static void mesh_calc_normals_poly_cb(void *userdata, const int pidx, - const ParallelRangeTLS *UNUSED(tls)) +static void mesh_calc_normals_poly_cb( + void *__restrict userdata, + const int pidx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { MeshCalcNormalsData *data = userdata; const MPoly *mp = &data->mpolys[pidx]; @@ -186,8 +188,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void mesh_calc_normals_poly_prepare_cb( + void *__restrict userdata, + const int pidx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { MeshCalcNormalsData *data = userdata; const MPoly *mp = &data->mpolys[pidx]; @@ -249,16 +253,20 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void mesh_calc_normals_poly_accum_cb( + void *__restrict userdata, + const int lidx, + const ParallelRangeTLS *__restrict 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, - const ParallelRangeTLS *UNUSED(tls)) +static void mesh_calc_normals_poly_finalize_cb( + void *__restrict userdata, + const int vidx, + const ParallelRangeTLS *__restrict UNUSED(tls)) { MeshCalcNormalsData *data = userdata; diff --git a/source/blender/blenkernel/intern/ocean.c b/source/blender/blenkernel/intern/ocean.c index 478b7ef21ef..0b4bc39627e 100644 --- a/source/blender/blenkernel/intern/ocean.c +++ b/source/blender/blenkernel/intern/ocean.c @@ -502,8 +502,10 @@ typedef struct OceanSimulateData { float chop_amount; } OceanSimulateData; -static void ocean_compute_htilda(void *userdata, const int i, - const ParallelRangeTLS *UNUSED(tls)) +static void ocean_compute_htilda( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict 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 f5f175da828..ac10ad44bf1 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3375,7 +3375,9 @@ typedef struct DynamicStepSolverTaskData { } DynamicStepSolverTaskData; static void dynamics_step_sph_ddr_task_cb_ex( - void *userdata, const int p, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int p, + const ParallelRangeTLS *__restrict tls) { DynamicStepSolverTaskData *data = userdata; ParticleSimulationData *sim = data->sim; @@ -3409,7 +3411,9 @@ static void dynamics_step_sph_ddr_task_cb_ex( } static void dynamics_step_sph_classical_basic_integrate_task_cb_ex( - void *userdata, const int p, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int p, + const ParallelRangeTLS *__restrict UNUSED(tls)) { DynamicStepSolverTaskData *data = userdata; ParticleSimulationData *sim = data->sim; @@ -3425,7 +3429,9 @@ static void dynamics_step_sph_classical_basic_integrate_task_cb_ex( } static void dynamics_step_sph_classical_calc_density_task_cb_ex( - void *userdata, const int p, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int p, + const ParallelRangeTLS *__restrict tls) { DynamicStepSolverTaskData *data = userdata; ParticleSimulationData *sim = data->sim; @@ -3443,7 +3449,9 @@ static void dynamics_step_sph_classical_calc_density_task_cb_ex( } static void dynamics_step_sph_classical_integrate_task_cb_ex( - void *userdata, const int p, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int p, + const ParallelRangeTLS *__restrict tls) { DynamicStepSolverTaskData *data = userdata; ParticleSimulationData *sim = data->sim; diff --git a/source/blender/blenkernel/intern/pbvh.c b/source/blender/blenkernel/intern/pbvh.c index 0395fc9c990..37fdfd68dab 100644 --- a/source/blender/blenkernel/intern/pbvh.c +++ b/source/blender/blenkernel/intern/pbvh.c @@ -939,8 +939,10 @@ typedef struct PBVHUpdateData { int flag; } PBVHUpdateData; -static void pbvh_update_normals_accum_task_cb(void *userdata, const int n, - const ParallelRangeTLS *UNUSED(tls)) +static void pbvh_update_normals_accum_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { PBVHUpdateData *data = userdata; @@ -993,8 +995,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void pbvh_update_normals_store_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { PBVHUpdateData *data = userdata; PBVH *bvh = data->bvh; @@ -1064,8 +1068,10 @@ 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, - const ParallelRangeTLS *UNUSED(tls)) +static void pbvh_update_BB_redraw_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict 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 0f12bb0a8da..4e887d21f4f 100644 --- a/source/blender/blenkernel/intern/shrinkwrap.c +++ b/source/blender/blenkernel/intern/shrinkwrap.c @@ -88,7 +88,9 @@ typedef struct ShrinkwrapCalcCBData { * for each vertex performs a nearest vertex search on the tree */ static void shrinkwrap_calc_nearest_vertex_cb_ex( - void *userdata, const int i, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict tls) { ShrinkwrapCalcCBData *data = userdata; @@ -262,7 +264,9 @@ bool BKE_shrinkwrap_project_normal( } static void shrinkwrap_calc_normal_projection_cb_ex( - void *userdata, const int i, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict tls) { ShrinkwrapCalcCBData *data = userdata; @@ -506,7 +510,9 @@ 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, const int i, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict tls) { ShrinkwrapCalcCBData *data = userdata; diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index 2146b85572c..9f9818127bc 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -740,7 +740,10 @@ typedef struct ObstaclesFromDMData { int *num_obstacles; } ObstaclesFromDMData; -static void obstacles_from_derivedmesh_task_cb(void *userdata, const int z, const ParallelRangeTLS *UNUSED(tls)) +static void obstacles_from_derivedmesh_task_cb( + void *__restrict userdata, + const int z, + const ParallelRangeTLS *__restrict UNUSED(tls)) { ObstaclesFromDMData *data = userdata; SmokeDomainSettings *sds = data->sds; @@ -1191,7 +1194,10 @@ typedef struct EmitFromParticlesData { float hr_smooth; } EmitFromParticlesData; -static void emit_from_particles_task_cb(void *userdata, const int z, const ParallelRangeTLS *UNUSED(tls)) +static void emit_from_particles_task_cb( + void *__restrict userdata, + const int z, + const ParallelRangeTLS *__restrict UNUSED(tls)) { EmitFromParticlesData *data = userdata; SmokeFlowSettings *sfs = data->sfs; @@ -1580,7 +1586,10 @@ typedef struct EmitFromDMData { int *min, *max, *res; } EmitFromDMData; -static void emit_from_derivedmesh_task_cb(void *userdata, const int z, const ParallelRangeTLS *UNUSED(tls)) +static void emit_from_derivedmesh_task_cb( + void *__restrict userdata, + const int z, + const ParallelRangeTLS *__restrict UNUSED(tls)) { EmitFromDMData *data = userdata; EmissionMap *em = data->em; @@ -2455,7 +2464,10 @@ typedef struct UpdateEffectorsData { unsigned char *obstacle; } UpdateEffectorsData; -static void update_effectors_task_cb(void *userdata, const int x, const ParallelRangeTLS *UNUSED(tls)) +static void update_effectors_task_cb( + void *__restrict userdata, + const int x, + const ParallelRangeTLS *__restrict 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 0874d645a34..1cb474e6202 100644 --- a/source/blender/blenkernel/intern/tracking_auto.c +++ b/source/blender/blenkernel/intern/tracking_auto.c @@ -432,9 +432,10 @@ AutoTrackContext *BKE_autotrack_context_new(MovieClip *clip, return context; } -static void autotrack_context_step_cb(void *userdata, - int track, - const ParallelRangeTLS *UNUSED(tls)) +static void autotrack_context_step_cb( + void *__restrict userdata, + const int track, + const ParallelRangeTLS *__restrict 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 fe850708547..cbf1a02a46c 100644 --- a/source/blender/blenkernel/intern/tracking_stabilize.c +++ b/source/blender/blenkernel/intern/tracking_stabilize.c @@ -1504,9 +1504,9 @@ typedef struct TrackingStabilizeFrameInterpolationData { } TrackingStabilizeFrameInterpolationData; static void tracking_stabilize_frame_interpolation_cb( - void *userdata, - int j, - const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int j, + const ParallelRangeTLS *__restrict UNUSED(tls)) { TrackingStabilizeFrameInterpolationData *data = userdata; ImBuf *ibuf = data->ibuf; diff --git a/source/blender/blenlib/BLI_math_base.h b/source/blender/blenlib/BLI_math_base.h index e6a72298ae7..cb3dc960042 100644 --- a/source/blender/blenlib/BLI_math_base.h +++ b/source/blender/blenlib/BLI_math_base.h @@ -129,6 +129,9 @@ MINLINE int max_iii(int a, int b, int c); MINLINE int min_iiii(int a, int b, int c, int d); MINLINE int max_iiii(int a, int b, int c, int d); +MINLINE size_t min_zz(size_t a, size_t b); +MINLINE size_t max_zz(size_t a, size_t b); + MINLINE int compare_ff(float a, float b, const float max_diff); MINLINE int compare_ff_relative(float a, float b, const float max_diff, const int max_ulps); diff --git a/source/blender/blenlib/BLI_task.h b/source/blender/blenlib/BLI_task.h index 52f32c2999f..1285e24e567 100644 --- a/source/blender/blenlib/BLI_task.h +++ b/source/blender/blenlib/BLI_task.h @@ -143,10 +143,11 @@ typedef struct ParallelRangeTLS { void *userdata_chunk; } ParallelRangeTLS; -typedef void (*TaskParallelRangeFunc)(void *userdata, +typedef void (*TaskParallelRangeFunc)(void *__restrict userdata, const int iter, - const ParallelRangeTLS *tls); -typedef void (*TaskParallelRangeFuncFinalize)(void *userdata, void *userdata_chunk); + const ParallelRangeTLS *__restrict tls); +typedef void (*TaskParallelRangeFuncFinalize)(void *__restrict userdata, + void *__restrict userdata_chunk); typedef struct ParallelRangeSettings { /* Whether caller allows to do threading of the particular range. diff --git a/source/blender/blenlib/intern/BLI_kdopbvh.c b/source/blender/blenlib/intern/BLI_kdopbvh.c index 03784e31eee..55667d19f76 100644 --- a/source/blender/blenlib/intern/BLI_kdopbvh.c +++ b/source/blender/blenlib/intern/BLI_kdopbvh.c @@ -798,7 +798,10 @@ typedef struct BVHDivNodesData { int first_of_next_level; } BVHDivNodesData; -static void non_recursive_bvh_div_nodes_task_cb(void *userdata, const int j, const ParallelRangeTLS *UNUSED(tls)) +static void non_recursive_bvh_div_nodes_task_cb( + void *__restrict userdata, + const int j, + const ParallelRangeTLS *__restrict UNUSED(tls)) { BVHDivNodesData *data = userdata; @@ -1282,7 +1285,10 @@ int BLI_bvhtree_overlap_thread_num(const BVHTree *tree) return (int)MIN2(tree->tree_type, tree->nodes[tree->totleaf]->totnode); } -static void bvhtree_overlap_task_cb(void *userdata, const int j, const ParallelRangeTLS *UNUSED(tls)) +static void bvhtree_overlap_task_cb( + void *__restrict userdata, + const int j, + const ParallelRangeTLS *__restrict UNUSED(tls)) { BVHOverlapData_Thread *data = &((BVHOverlapData_Thread *)userdata)[j]; BVHOverlapData_Shared *data_shared = data->shared; diff --git a/source/blender/blenlib/intern/math_base_inline.c b/source/blender/blenlib/intern/math_base_inline.c index 749c18fc0ce..9202efce7b4 100644 --- a/source/blender/blenlib/intern/math_base_inline.c +++ b/source/blender/blenlib/intern/math_base_inline.c @@ -315,6 +315,15 @@ MINLINE int max_iiii(int a, int b, int c, int d) return max_ii(max_iii(a, b, c), d); } +MINLINE size_t min_zz(size_t a, size_t b) +{ + return (a < b) ? a : b; +} +MINLINE size_t max_zz(size_t a, size_t b) +{ + return (b < a) ? a : b; +} + /** * Almost-equal for IEEE floats, using absolute difference method. * diff --git a/source/blender/blenlib/intern/math_statistics.c b/source/blender/blenlib/intern/math_statistics.c index 14e3aaea053..3a19f1d3603 100644 --- a/source/blender/blenlib/intern/math_statistics.c +++ b/source/blender/blenlib/intern/math_statistics.c @@ -46,8 +46,10 @@ typedef struct CovarianceData { int nbr_cos_vn; } CovarianceData; -static void covariance_m_vn_ex_task_cb(void *userdata, const int a, - const ParallelRangeTLS *UNUSED(tls)) +static void covariance_m_vn_ex_task_cb( + void *__restrict userdata, + const int a, + const ParallelRangeTLS *__restrict UNUSED(tls)) { CovarianceData *data = userdata; const float *cos_vn = data->cos_vn; diff --git a/source/blender/blenlib/intern/task.c b/source/blender/blenlib/intern/task.c index 29daac1ae48..a41e4f01352 100644 --- a/source/blender/blenlib/intern/task.c +++ b/source/blender/blenlib/intern/task.c @@ -1029,7 +1029,7 @@ static void parallel_range_func( } } -static void palallel_range_single_thread(int start, int stop, +static void palallel_range_single_thread(const int start, int const stop, void *userdata, TaskParallelRangeFunc func, const ParallelRangeSettings *settings) diff --git a/source/blender/bmesh/intern/bmesh_interp.c b/source/blender/bmesh/intern/bmesh_interp.c index 447eb3aa858..8a1090891f2 100644 --- a/source/blender/bmesh/intern/bmesh_interp.c +++ b/source/blender/bmesh/intern/bmesh_interp.c @@ -419,8 +419,10 @@ typedef struct BMLoopInterpMultiresData { float d; } BMLoopInterpMultiresData; -static void loop_interp_multires_cb(void *userdata, int ix, - const ParallelRangeTLS *UNUSED(tls)) +static void loop_interp_multires_cb( + void *__restrict userdata, + const int ix, + const ParallelRangeTLS *__restrict UNUSED(tls)) { BMLoopInterpMultiresData *data = userdata; diff --git a/source/blender/depsgraph/intern/eval/deg_eval.cc b/source/blender/depsgraph/intern/eval/deg_eval.cc index 38a7470c0ec..116f853ebdf 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval.cc @@ -102,9 +102,10 @@ typedef struct CalculatePengindData { Depsgraph *graph; } CalculatePengindData; -static void calculate_pending_func(void *data_v, - int i, - const ParallelRangeTLS * /*tls*/) +static void calculate_pending_func( + void *__restrict data_v, + const int i, + const ParallelRangeTLS *__restrict /*tls*/) { CalculatePengindData *data = (CalculatePengindData *)data_v; Depsgraph *graph = data->graph; diff --git a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc index 6dc35bb8aba..c3b1f56a71b 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_flush.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_flush.cc @@ -71,18 +71,20 @@ typedef std::deque<OperationDepsNode *> FlushQueue; namespace { -void flush_init_operation_node_func(void *data_v, - int i, - const ParallelRangeTLS * /*tls*/) +void flush_init_operation_node_func( + void *__restrict data_v, + const int i, + const ParallelRangeTLS *__restrict /*tls*/) { Depsgraph *graph = (Depsgraph *)data_v; OperationDepsNode *node = graph->operations[i]; node->scheduled = false; } -void flush_init_id_node_func(void *data_v, - int i, - const ParallelRangeTLS * /*tls*/) +void flush_init_id_node_func( + void *__restrict data_v, + const int i, + const ParallelRangeTLS *__restrict /*tls*/) { Depsgraph *graph = (Depsgraph *)data_v; IDDepsNode *id_node = graph->id_nodes[i]; @@ -292,9 +294,10 @@ void deg_graph_flush_updates(Main *bmain, Depsgraph *graph) flush_editors_id_update(bmain, graph, &update_ctx); } -static void graph_clear_func(void *data_v, - int i, - const ParallelRangeTLS * /*tls*/) +static void graph_clear_func( + void *__restrict data_v, + const int i, + const ParallelRangeTLS *__restrict /*tls*/) { Depsgraph *graph = (Depsgraph *)data_v; OperationDepsNode *node = graph->operations[i]; diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c index 24a7137da19..3a43c7a6585 100644 --- a/source/blender/editors/sculpt_paint/paint_cursor.c +++ b/source/blender/editors/sculpt_paint/paint_cursor.c @@ -151,7 +151,10 @@ typedef struct LoadTexData { float radius; } LoadTexData; -static void load_tex_task_cb_ex(void *userdata, const int j, const ParallelRangeTLS *tls) +static void load_tex_task_cb_ex( + void *__restrict userdata, + const int j, + const ParallelRangeTLS *__restrict tls) { LoadTexData *data = userdata; Brush *br = data->br; @@ -367,7 +370,10 @@ static int load_tex(Brush *br, ViewContext *vc, float zoom, bool col, bool prima return 1; } -static void load_tex_cursor_task_cb(void *userdata, const int j, const ParallelRangeTLS *UNUSED(tls)) +static void load_tex_cursor_task_cb( + void *__restrict userdata, + const int j, + const ParallelRangeTLS *__restrict UNUSED(tls)) { LoadTexData *data = userdata; Brush *br = data->br; diff --git a/source/blender/editors/sculpt_paint/paint_image_2d.c b/source/blender/editors/sculpt_paint/paint_image_2d.c index 8a7bbc90979..2ce7c51b6b4 100644 --- a/source/blender/editors/sculpt_paint/paint_image_2d.c +++ b/source/blender/editors/sculpt_paint/paint_image_2d.c @@ -1071,8 +1071,10 @@ typedef struct Paint2DForeachData { int tilew; } Paint2DForeachData; -static void paint_2d_op_foreach_do(void *data_v, const int iter, - const ParallelRangeTLS *UNUSED(tls)) +static void paint_2d_op_foreach_do( + void *__restrict data_v, + const int iter, + const ParallelRangeTLS *__restrict UNUSED(tls)) { Paint2DForeachData *data = (Paint2DForeachData *)data_v; paint_2d_do_making_brush(data->s, data->region, data->curveb, diff --git a/source/blender/editors/sculpt_paint/paint_mask.c b/source/blender/editors/sculpt_paint/paint_mask.c index 5ae59164743..ff261a808da 100644 --- a/source/blender/editors/sculpt_paint/paint_mask.c +++ b/source/blender/editors/sculpt_paint/paint_mask.c @@ -104,8 +104,10 @@ typedef struct MaskTaskData { float (*clip_planes_final)[4]; } MaskTaskData; -static void mask_flood_fill_task_cb(void *userdata, const int i, - const ParallelRangeTLS *UNUSED(tls)) +static void mask_flood_fill_task_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { MaskTaskData *data = userdata; @@ -225,8 +227,10 @@ static void flip_plane(float out[4], const float in[4], const char symm) out[3] = in[3]; } -static void mask_box_select_task_cb(void *userdata, const int i, - const ParallelRangeTLS *UNUSED(tls)) +static void mask_box_select_task_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { MaskTaskData *data = userdata; @@ -385,8 +389,10 @@ static void mask_lasso_px_cb(int x, int x_end, int y, void *user_data) } while (++index != index_end); } -static void mask_gesture_lasso_task_cb(void *userdata, const int i, - const ParallelRangeTLS *UNUSED(tls)) +static void mask_gesture_lasso_task_cb( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { LassoMaskData *lasso_data = userdata; MaskTaskData *data = &lasso_data->task_data; diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 8c25f3573ea..0c1df71b1aa 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1441,7 +1441,9 @@ static float wpaint_get_active_weight(const MDeformVert *dv, const WeightPaintIn } static void do_wpaint_precompute_weight_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; const MDeformVert *dv = &data->me->dvert[n]; @@ -1472,7 +1474,9 @@ static void precompute_weight_values( } static void do_wpaint_brush_blur_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -1561,7 +1565,9 @@ static void do_wpaint_brush_blur_task_cb_ex( } static void do_wpaint_brush_smear_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -1668,7 +1674,9 @@ static void do_wpaint_brush_smear_task_cb_ex( } static void do_wpaint_brush_draw_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -1738,7 +1746,9 @@ static void do_wpaint_brush_draw_task_cb_ex( } static void do_wpaint_brush_calc_average_weight_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2417,7 +2427,9 @@ static bool vpaint_stroke_test_start(bContext *C, struct wmOperator *op, const f } static void do_vpaint_brush_calc_average_color_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2479,7 +2491,9 @@ static float tex_color_alpha_ubyte( } static void do_vpaint_brush_draw_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2571,7 +2585,9 @@ static void do_vpaint_brush_draw_task_cb_ex( } static void do_vpaint_brush_blur_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2680,7 +2696,9 @@ static void do_vpaint_brush_blur_task_cb_ex( } static void do_vpaint_brush_smear_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *UNUSED(tls)) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 1af522ffd8d..69cf114f4b7 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -377,8 +377,10 @@ static bool sculpt_stroke_is_dynamic_topology( /*** paint mesh ***/ -static void paint_mesh_restore_co_task_cb(void *userdata, const int n, - const ParallelRangeTLS *UNUSED(tls)) +static void paint_mesh_restore_co_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -800,8 +802,10 @@ static float calc_symmetry_feather(Sculpt *sd, StrokeCache *cache) * \note These are all _very_ similar, when changing one, check others. * \{ */ -static void calc_area_normal_and_center_task_cb(void *userdata, const int n, - const ParallelRangeTLS *UNUSED(tls)) +static void calc_area_normal_and_center_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -1648,7 +1652,9 @@ typedef struct { } SculptFindNearestToRayData; static void do_smooth_brush_mesh_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -1696,7 +1702,9 @@ static void do_smooth_brush_mesh_task_cb_ex( } static void do_smooth_brush_bmesh_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -1744,7 +1752,9 @@ static void do_smooth_brush_bmesh_task_cb_ex( } static void do_smooth_brush_multires_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptDoBrushSmoothGridDataChunk *data_chunk = tls->userdata_chunk; @@ -1974,7 +1984,9 @@ static void do_smooth_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod } static void do_mask_brush_draw_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2039,7 +2051,9 @@ static void do_mask_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) } static void do_draw_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2108,7 +2122,9 @@ static void do_draw_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) * Used for 'SCULPT_TOOL_CREASE' and 'SCULPT_TOOL_BLOB' */ static void do_crease_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2207,7 +2223,9 @@ static void do_crease_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod } static void do_pinch_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2263,7 +2281,9 @@ static void do_pinch_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode } static void do_grab_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2329,7 +2349,9 @@ static void do_grab_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) } static void do_nudge_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2390,7 +2412,9 @@ static void do_nudge_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode } static void do_snake_hook_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2501,7 +2525,9 @@ static void do_snake_hook_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int to } static void do_thumb_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2567,7 +2593,9 @@ static void do_thumb_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode } static void do_rotate_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2634,7 +2662,9 @@ static void do_rotate_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod } static void do_layer_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2726,7 +2756,9 @@ static void do_layer_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode } static void do_inflate_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2895,7 +2927,9 @@ static float get_offset(Sculpt *sd, SculptSession *ss) } static void do_flatten_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -2978,7 +3012,9 @@ static void do_flatten_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totno } static void do_clay_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -3069,7 +3105,9 @@ static void do_clay_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) } static void do_clay_strips_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -3184,7 +3222,9 @@ static void do_clay_strips_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int t } static void do_fill_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -3270,7 +3310,9 @@ static void do_fill_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnode) } static void do_scrape_brush_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -3355,7 +3397,9 @@ static void do_scrape_brush(Sculpt *sd, Object *ob, PBVHNode **nodes, int totnod } static void do_gravity_task_cb_ex( - void *userdata, const int n, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict tls) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -3515,8 +3559,10 @@ static void sculpt_topology_update(Sculpt *sd, Object *ob, Brush *brush, Unified } } -static void do_brush_action_task_cb(void *userdata, const int n, - const ParallelRangeTLS *UNUSED(tls)) +static void do_brush_action_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; @@ -3662,8 +3708,10 @@ static void sculpt_flush_pbvhvert_deform(Object *ob, PBVHVertexIter *vd) copy_v3_v3(me->mvert[index].co, newco); } -static void sculpt_combine_proxies_task_cb(void *userdata, const int n, - const ParallelRangeTLS *UNUSED(tls)) +static void sculpt_combine_proxies_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; @@ -3763,8 +3811,10 @@ static void sculpt_update_keyblock(Object *ob) } } -static void sculpt_flush_stroke_deform_task_cb(void *userdata, const int n, - const ParallelRangeTLS *UNUSED(tls)) +static void sculpt_flush_stroke_deform_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SculptThreadedTaskData *data = userdata; SculptSession *ss = data->ob->sculpt; diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c index 73aaedc856e..63017a0e576 100644 --- a/source/blender/editors/sculpt_paint/sculpt_undo.c +++ b/source/blender/editors/sculpt_paint/sculpt_undo.c @@ -319,8 +319,10 @@ static bool sculpt_undo_restore_mask(bContext *C, DerivedMesh *dm, SculptUndoNod return 1; } -static void sculpt_undo_bmesh_restore_generic_task_cb(void *userdata, const int n, - const ParallelRangeTLS *UNUSED(tls)) +static void sculpt_undo_bmesh_restore_generic_task_cb( + void *__restrict userdata, + const int n, + const ParallelRangeTLS *__restrict UNUSED(tls)) { PBVHNode **nodes = userdata; diff --git a/source/blender/editors/space_sequencer/sequencer_scopes.c b/source/blender/editors/space_sequencer/sequencer_scopes.c index 25ee4041d8e..c5d6edadb53 100644 --- a/source/blender/editors/space_sequencer/sequencer_scopes.c +++ b/source/blender/editors/space_sequencer/sequencer_scopes.c @@ -459,7 +459,9 @@ typedef struct MakeHistogramViewData { } MakeHistogramViewData; static void make_histogram_view_from_ibuf_byte_cb_ex( - void *userdata, const int y, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int y, + const ParallelRangeTLS *__restrict tls) { MakeHistogramViewData *data = userdata; const ImBuf *ibuf = data->ibuf; @@ -476,7 +478,8 @@ static void make_histogram_view_from_ibuf_byte_cb_ex( } } -static void make_histogram_view_from_ibuf_finalize(void *userdata, void *userdata_chunk) +static void make_histogram_view_from_ibuf_finalize(void *__restrict userdata, + void *__restrict userdata_chunk) { MakeHistogramViewData *data = userdata; uint32_t (*bins)[HIS_STEPS] = data->bins; @@ -556,7 +559,9 @@ BLI_INLINE int get_bin_float(float f) } static void make_histogram_view_from_ibuf_float_cb_ex( - void *userdata, const int y, const ParallelRangeTLS *tls) + void *__restrict userdata, + const int y, + const ParallelRangeTLS *__restrict tls) { const MakeHistogramViewData *data = userdata; const ImBuf *ibuf = data->ibuf; diff --git a/source/blender/makesdna/DNA_userdef_types.h b/source/blender/makesdna/DNA_userdef_types.h index 2c64a324b9b..896ae76a407 100644 --- a/source/blender/makesdna/DNA_userdef_types.h +++ b/source/blender/makesdna/DNA_userdef_types.h @@ -502,7 +502,9 @@ typedef struct UserDef { char keyconfigstr[64]; short undosteps; - short undomemory; + short pad1; + int undomemory; + int pad3; short gp_manhattendist, gp_euclideandist, gp_eraser; short gp_settings; /* eGP_UserdefSettings */ short tb_leftmouse, tb_rightmouse; diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index bff6cdcf1bd..25ce04229ed 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -24,6 +24,7 @@ * \ingroup RNA */ +#include <limits.h> #include <stdlib.h> #include "DNA_curve_types.h" @@ -34,6 +35,7 @@ #include "DNA_scene_types.h" #include "BLI_utildefines.h" +#include "BLI_math_base.h" #include "BKE_appdir.h" #include "BKE_DerivedMesh.h" @@ -638,6 +640,27 @@ static StructRNA *rna_AddonPref_refine(PointerRNA *ptr) #else +/* TODO(sergey): This technically belongs to blenlib, but we don't link + * makesrna against it. + */ + +/* Get maximum addressable memory in megabytes, */ +static size_t max_memory_in_megabytes(void) +{ + /* Maximum addressable bytes on this platform. */ + const size_t limit_bytes = (((size_t)1) << ((sizeof(size_t) * 8) - 1)); + /* Convert it to megabytes and return. */ + return (limit_bytes >> 20); +} + +/* Same as above, but clipped to int capacity. */ +static int max_memory_in_megabytes_int(void) +{ + const size_t limit_megabytes = max_memory_in_megabytes(); + /* NOTE: The result will fit into integer. */ + return (int)min_zz(limit_megabytes, (size_t)INT_MAX); +} + static void rna_def_userdef_theme_ui_font_style(BlenderRNA *brna) { StructRNA *srna; @@ -3648,7 +3671,7 @@ static void rna_def_userdef_edit(BlenderRNA *brna) prop = RNA_def_property(srna, "undo_memory_limit", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "undomemory"); - RNA_def_property_range(prop, 0, 32767); + RNA_def_property_range(prop, 0, max_memory_in_megabytes_int()); RNA_def_property_ui_text(prop, "Undo Memory Size", "Maximum memory usage in megabytes (0 means unlimited)"); prop = RNA_def_property(srna, "use_global_undo", PROP_BOOLEAN, PROP_NONE); @@ -4058,7 +4081,7 @@ static void rna_def_userdef_system(BlenderRNA *brna) prop = RNA_def_property(srna, "memory_cache_limit", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "memcachelimit"); - RNA_def_property_range(prop, 0, (sizeof(void *) == 8) ? 1024 * 32 : 1024); /* 32 bit 2 GB, 64 bit 32 GB */ + RNA_def_property_range(prop, 0, max_memory_in_megabytes_int()); RNA_def_property_ui_text(prop, "Memory Cache Limit", "Memory cache limit (in megabytes)"); RNA_def_property_update(prop, 0, "rna_Userdef_memcache_update"); diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c index 9818b8a322e..94a4ae9be17 100644 --- a/source/blender/modifiers/intern/MOD_displace.c +++ b/source/blender/modifiers/intern/MOD_displace.c @@ -187,7 +187,10 @@ typedef struct DisplaceUserdata { float (*vert_clnors)[3]; } DisplaceUserdata; -static void displaceModifier_do_task(void *userdata, const int iter, const ParallelRangeTLS *UNUSED(tls)) +static void displaceModifier_do_task( + void *__restrict userdata, + const int iter, + const ParallelRangeTLS *__restrict UNUSED(tls)) { DisplaceUserdata *data = (DisplaceUserdata *)userdata; DisplaceModifierData *dmd = data->dmd; diff --git a/source/blender/modifiers/intern/MOD_meshdeform.c b/source/blender/modifiers/intern/MOD_meshdeform.c index e39328fdea4..3976433db93 100644 --- a/source/blender/modifiers/intern/MOD_meshdeform.c +++ b/source/blender/modifiers/intern/MOD_meshdeform.c @@ -215,8 +215,10 @@ typedef struct MeshdeformUserdata { float (*icagemat)[3]; } MeshdeformUserdata; -static void meshdeform_vert_task(void *userdata, const int iter, - const ParallelRangeTLS *UNUSED(tls)) +static void meshdeform_vert_task( + void *__restrict userdata, + const int iter, + const ParallelRangeTLS *__restrict UNUSED(tls)) { MeshdeformUserdata *data = userdata; /*const*/ MeshDeformModifierData *mmd = data->mmd; diff --git a/source/blender/modifiers/intern/MOD_ocean.c b/source/blender/modifiers/intern/MOD_ocean.c index fcf1874b407..b3a7ecaa138 100644 --- a/source/blender/modifiers/intern/MOD_ocean.c +++ b/source/blender/modifiers/intern/MOD_ocean.c @@ -261,8 +261,10 @@ typedef struct GenerateOceanGeometryData { float ix, iy; } GenerateOceanGeometryData; -static void generate_ocean_geometry_vertices(void *userdata, const int y, - const ParallelRangeTLS *UNUSED(tls)) +static void generate_ocean_geometry_vertices( + void *__restrict userdata, + const int y, + const ParallelRangeTLS *__restrict UNUSED(tls)) { GenerateOceanGeometryData *gogd = userdata; int x; @@ -276,8 +278,10 @@ static void generate_ocean_geometry_vertices(void *userdata, const int y, } } -static void generate_ocean_geometry_polygons(void *userdata, const int y, - const ParallelRangeTLS *UNUSED(tls)) +static void generate_ocean_geometry_polygons( + void *__restrict userdata, + const int y, + const ParallelRangeTLS *__restrict UNUSED(tls)) { GenerateOceanGeometryData *gogd = userdata; int x; @@ -307,8 +311,10 @@ static void generate_ocean_geometry_polygons(void *userdata, const int y, } } -static void generate_ocean_geometry_uvs(void *userdata, const int y, - const ParallelRangeTLS *UNUSED(tls)) +static void generate_ocean_geometry_uvs( + void *__restrict userdata, + const int y, + const ParallelRangeTLS *__restrict UNUSED(tls)) { GenerateOceanGeometryData *gogd = userdata; int x; diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c index ab1f48213ee..cef64e91669 100644 --- a/source/blender/modifiers/intern/MOD_surfacedeform.c +++ b/source/blender/modifiers/intern/MOD_surfacedeform.c @@ -736,7 +736,10 @@ BLI_INLINE float computeNormalDisplacement(const float point_co[3], const float return normal_dist; } -static void bindVert(void *userdata, const int index, const ParallelRangeTLS *UNUSED(tls)) +static void bindVert( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SDefBindCalcData * const data = (SDefBindCalcData *)userdata; float point_co[3]; @@ -1037,7 +1040,10 @@ static bool surfacedeformBind(SurfaceDeformModifierData *smd, float (*vertexCos) return data.success == 1; } -static void deformVert(void *userdata, const int index, const ParallelRangeTLS *UNUSED(tls)) +static void deformVert( + void *__restrict userdata, + const int index, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const SDefDeformData * const data = (SDefDeformData *)userdata; const SDefBind *sdbind = data->bind_verts[index].binds; diff --git a/source/blender/modifiers/intern/MOD_uvwarp.c b/source/blender/modifiers/intern/MOD_uvwarp.c index 2980c1cd07a..32974d68d9d 100644 --- a/source/blender/modifiers/intern/MOD_uvwarp.c +++ b/source/blender/modifiers/intern/MOD_uvwarp.c @@ -110,7 +110,10 @@ typedef struct UVWarpData { int axis_v; } UVWarpData; -static void uv_warp_compute(void *userdata, const int i, const ParallelRangeTLS *UNUSED(tls)) +static void uv_warp_compute( + void *__restrict userdata, + const int i, + const ParallelRangeTLS *__restrict UNUSED(tls)) { const UVWarpData *data = userdata; diff --git a/source/blender/modifiers/intern/MOD_weightvgproximity.c b/source/blender/modifiers/intern/MOD_weightvgproximity.c index 82f44f36545..787e712853a 100644 --- a/source/blender/modifiers/intern/MOD_weightvgproximity.c +++ b/source/blender/modifiers/intern/MOD_weightvgproximity.c @@ -90,7 +90,10 @@ typedef struct Vert2GeomDataChunk { /** * Callback used by BLI_task 'for loop' helper. */ -static void vert2geom_task_cb_ex(void *userdata, const int iter, const ParallelRangeTLS *tls) +static void vert2geom_task_cb_ex( + void *__restrict userdata, + const int iter, + const ParallelRangeTLS *__restrict tls) { Vert2GeomData *data = userdata; Vert2GeomDataChunk *data_chunk = tls->userdata_chunk; diff --git a/source/blender/render/intern/source/pointdensity.c b/source/blender/render/intern/source/pointdensity.c index da5c26f568d..4f300b7286c 100644 --- a/source/blender/render/intern/source/pointdensity.c +++ b/source/blender/render/intern/source/pointdensity.c @@ -1033,8 +1033,10 @@ typedef struct SampleCallbackData { float *values; } SampleCallbackData; -static void point_density_sample_func(void *data_v, const int iter, - const ParallelRangeTLS *UNUSED(tls)) +static void point_density_sample_func( + void *__restrict data_v, + const int iter, + const ParallelRangeTLS *__restrict UNUSED(tls)) { SampleCallbackData *data = (SampleCallbackData *)data_v; |