Fix T48373: Crash when using dynamic paint with brush material.
`dynamicPaint_doMaterialTex` was called from inside an omp parallel section with brush->dm itself, and not the local dm copy. Generating looptri data is not thread safe at all...
This commit is contained in:
parent
1955754934
commit
0411cfea9d
@ -3466,8 +3466,11 @@ static int dynamicPaint_paintMesh(DynamicPaintSurface *surface,
|
||||
sampleColor[2] = brush->b;
|
||||
|
||||
/* Get material+textures color on hit point if required */
|
||||
if (brush_usesMaterial(brush, scene))
|
||||
dynamicPaint_doMaterialTex(bMats, sampleColor, &alpha_factor, brushOb, bData->realCoord[bData->s_pos[index] + ss].v, hitCoord, hitTri, brush->dm);
|
||||
if (brush_usesMaterial(brush, scene)) {
|
||||
dynamicPaint_doMaterialTex(bMats, sampleColor, &alpha_factor, brushOb,
|
||||
bData->realCoord[bData->s_pos[index] + ss].v,
|
||||
hitCoord, hitTri, dm);
|
||||
}
|
||||
|
||||
/* Sample proximity colorband if required */
|
||||
if ((hit_found == HIT_PROXIMITY) && (brush->proximity_falloff == MOD_DPAINT_PRFALL_RAMP)) {
|
||||
|
Loading…
Reference in New Issue
Block a user