Merge branch 'master' into blender2.8

This commit is contained in:
Sergey Sharybin 2018-01-10 13:22:03 +01:00
commit 5d38c14116
37 changed files with 483 additions and 197 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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.

View File

@ -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;

View File

@ -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.
*

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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];

View File

@ -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;

View File

@ -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,

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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");

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;