[Bf-blender-cvs] [88dd45e1e1b] master: Disable multithreaded weight paint when mirroring is enabled.
Alexander Gavrilov
noreply at git.blender.org
Mon Oct 2 16:37:48 CEST 2017
Commit: 88dd45e1e1bde5db43e8807b7def754dea8b01fc
Author: Alexander Gavrilov
Date: Mon Oct 2 17:33:51 2017 +0300
Branches: master
https://developer.blender.org/rB88dd45e1e1bde5db43e8807b7def754dea8b01fc
Disable multithreaded weight paint when mirroring is enabled.
Mirroring writes to the mirror vertex within the direct vertex
draw function, which violates assumptions required for processing
vertices in parallel.
===================================================================
M source/blender/editors/sculpt_paint/paint_vertex.c
===================================================================
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index ea85ae70794..4dd218114f6 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -1841,27 +1841,30 @@ static void wpaint_paint_leaves(
.sd = sd, .ob = ob, .brush = brush, .nodes = nodes, .vp = vp, .wpd = wpd, .wpi = wpi, .me = me, .C = C,
};
+ /* current mirroring code cannot be run in parallel */
+ bool use_threading = !(me->editflag & ME_EDIT_MIRROR_X);
+
switch (brush->vertexpaint_tool) {
case PAINT_BLEND_AVERAGE:
calculate_average_weight(&data, nodes, totnode);
BLI_task_parallel_range_ex(
0, totnode, &data, NULL, 0,
- do_wpaint_brush_draw_task_cb_ex, true, false);
+ do_wpaint_brush_draw_task_cb_ex, use_threading, false);
break;
case PAINT_BLEND_SMEAR:
BLI_task_parallel_range_ex(
0, totnode, &data, NULL, 0,
- do_wpaint_brush_smear_task_cb_ex, true, false);
+ do_wpaint_brush_smear_task_cb_ex, use_threading, false);
break;
case PAINT_BLEND_BLUR:
BLI_task_parallel_range_ex(
0, totnode, &data, NULL, 0,
- do_wpaint_brush_blur_task_cb_ex, true, false);
+ do_wpaint_brush_blur_task_cb_ex, use_threading, false);
break;
default:
BLI_task_parallel_range_ex(
0, totnode, &data, NULL, 0,
- do_wpaint_brush_draw_task_cb_ex, true, false);
+ do_wpaint_brush_draw_task_cb_ex, use_threading, false);
break;
}
}
More information about the Bf-blender-cvs
mailing list