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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-01-10 14:49:51 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-01-10 14:49:51 +0300
commit561419374549201845bdd58e7329f61eef574f7f (patch)
treecc2f7e759b13ef119480bfc239ae23cd4d3062a6 /source/blender/editors/sculpt_paint
parent518c65460e8843e425fee2161b407e1f8e9e4281 (diff)
Task scheduler: Use restrict pointer qualifier
Those pointers are never to be aliased, so let's be explicit about this and hope compiler does save some CPU ticks.
Diffstat (limited to 'source/blender/editors/sculpt_paint')
-rw-r--r--source/blender/editors/sculpt_paint/paint_cursor.c10
-rw-r--r--source/blender/editors/sculpt_paint/paint_image_2d.c6
-rw-r--r--source/blender/editors/sculpt_paint/paint_mask.c18
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c36
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c110
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_undo.c6
6 files changed, 135 insertions, 51 deletions
diff --git a/source/blender/editors/sculpt_paint/paint_cursor.c b/source/blender/editors/sculpt_paint/paint_cursor.c
index 84e75f0e7fc..e8778eea3b9 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;
@@ -369,7 +372,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 4be6c71e587..894277402a7 100644
--- a/source/blender/editors/sculpt_paint/paint_image_2d.c
+++ b/source/blender/editors/sculpt_paint/paint_image_2d.c
@@ -1070,8 +1070,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 d755bb707c2..264135d1d03 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;
@@ -222,8 +224,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;
@@ -381,8 +385,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 6303d700b40..a5405338ada 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -1431,7 +1431,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];
@@ -1462,7 +1464,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;
@@ -1551,7 +1555,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;
@@ -1658,7 +1664,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;
@@ -1728,7 +1736,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;
@@ -2396,7 +2406,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;
@@ -2458,7 +2470,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;
@@ -2550,7 +2564,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;
@@ -2659,7 +2675,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 acffeb70027..37af1732045 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -376,8 +376,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;
@@ -2104,7 +2118,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;
@@ -2203,7 +2219,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;
@@ -2259,7 +2277,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;
@@ -2325,7 +2345,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;
@@ -2386,7 +2408,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;
@@ -2497,7 +2521,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;
@@ -2563,7 +2589,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;
@@ -2630,7 +2658,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;
@@ -2722,7 +2752,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;
@@ -2891,7 +2923,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;
@@ -2974,7 +3008,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;
@@ -3065,7 +3101,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;
@@ -3180,7 +3218,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;
@@ -3266,7 +3306,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;
@@ -3351,7 +3393,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;
@@ -3511,8 +3555,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;
@@ -3658,8 +3704,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;
@@ -3759,8 +3807,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 7d66d93289a..1b96d2fd5a0 100644
--- a/source/blender/editors/sculpt_paint/sculpt_undo.c
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@ -316,8 +316,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;