From 00bd7da6745d8f8aa9ec7327f38ed6ac253beba7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 9 Sep 2013 05:42:26 +0000 Subject: correct error in recent changes for building with openmp. rename DM_OMP_LIMIT to BKE_MESH_OMP_LIMIT and set to 0 when in debug mode, same for BM_OMP_LIMIT. --- source/blender/blenkernel/BKE_DerivedMesh.h | 2 -- source/blender/blenkernel/BKE_mesh.h | 6 ++++++ source/blender/blenkernel/intern/DerivedMesh.c | 2 +- source/blender/blenkernel/intern/mesh_evaluate.c | 4 ++-- source/blender/bmesh/bmesh_class.h | 8 +++++++- source/blender/bmesh/operators/bmo_normals.c | 2 +- source/blender/editors/mesh/editmesh_tools.c | 2 +- source/blender/modifiers/intern/MOD_build.c | 2 +- 8 files changed, 19 insertions(+), 9 deletions(-) (limited to 'source/blender') diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index d8af90b4ae7..26a160a260c 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -97,8 +97,6 @@ struct BMEditMesh; struct ListBase; struct PBVH; -#define DM_OMP_LIMIT 10000 /* setting zero so we can catch bugs in OpenMP/BMesh */ - /* number of sub-elements each mesh element has (for interpolation) */ #define SUB_ELEMS_VERT 0 #define SUB_ELEMS_EDGE 2 diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index 43e425b5ce1..627cc8f42e5 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -63,6 +63,12 @@ struct UvElement; extern "C" { #endif +/* setting zero so we can catch bugs in OpenMP/BMesh */ +#ifdef DEBUG +# define BKE_MESH_OMP_LIMIT 0 +#else +# define BKE_MESH_OMP_LIMIT 10000 +#endif /* *** mesh.c *** */ diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index da3b9cd9118..359141b2c8c 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1685,7 +1685,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos DM_add_edge_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); DM_add_poly_layer(dm, CD_ORIGINDEX, CD_CALLOC, NULL); -#pragma omp parallel sections if (dm->numVertData + dm->numEdgeData + dm->numPolyData >= DM_OMP_LIMIT) +#pragma omp parallel sections if (dm->numVertData + dm->numEdgeData + dm->numPolyData >= BKE_MESH_OMP_LIMIT) { #pragma omp section { range_vn_i(DM_get_vert_data_layer(dm, CD_ORIGINDEX), dm->numVertData, 0); } diff --git a/source/blender/blenkernel/intern/mesh_evaluate.c b/source/blender/blenkernel/intern/mesh_evaluate.c index bf8f1fad7f0..13aa3994361 100644 --- a/source/blender/blenkernel/intern/mesh_evaluate.c +++ b/source/blender/blenkernel/intern/mesh_evaluate.c @@ -168,7 +168,7 @@ static void mesh_calc_normals_poly_accum(MPoly *mp, MLoop *ml, v_curr = mvert[ml[i].v].co; add_newell_cross_v3_v3v3(polyno, v_prev, v_curr); - /* Unrelated to normalize, calcualte edge-vector */ + /* Unrelated to normalize, calculate edge-vector */ sub_v3_v3v3(edgevecbuf[i_prev], v_prev, v_curr); normalize_v3(edgevecbuf[i_prev]); i_prev = i; @@ -212,7 +212,7 @@ void BKE_mesh_calc_normals_poly(MVert *mverts, int numVerts, MLoop *mloop, MPoly if (only_face_normals) { BLI_assert(pnors != NULL); -#pragma omp parallel for if (numPolys > BM_OMP_LIMIT) +#pragma omp parallel for if (numPolys > BKE_MESH_OMP_LIMIT) for (i = 0; i < numPolys; i++) { BKE_mesh_calc_poly_normal(&mpolys[i], mloop + mpolys[i].loopstart, mverts, pnors[i]); } diff --git a/source/blender/bmesh/bmesh_class.h b/source/blender/bmesh/bmesh_class.h index 5b79bd78061..90105b0dd81 100644 --- a/source/blender/bmesh/bmesh_class.h +++ b/source/blender/bmesh/bmesh_class.h @@ -292,6 +292,12 @@ typedef bool (*BMElemFilterFunc)(BMElem *, void *user_data); * but should not error on valid cases */ #define BM_LOOP_RADIAL_MAX 10000 #define BM_NGON_MAX 100000 -#define BM_OMP_LIMIT 10000 /* 10000 */ /* setting zero so we can catch bugs in OpenMP/BMesh */ + +/* setting zero so we can catch bugs in OpenMP/BMesh */ +#ifdef DEBUG +# define BM_OMP_LIMIT 0 +#else +# define BM_OMP_LIMIT 10000 +#endif #endif /* __BMESH_CLASS_H__ */ diff --git a/source/blender/bmesh/operators/bmo_normals.c b/source/blender/bmesh/operators/bmo_normals.c index 93d7d1ad2c0..1eaa0695ad2 100644 --- a/source/blender/bmesh/operators/bmo_normals.c +++ b/source/blender/bmesh/operators/bmo_normals.c @@ -47,7 +47,7 @@ static bool bmo_recalc_normal_edge_filter_cb(BMElem *ele, void *UNUSED(user_data } /** - * Given an array of faces, recalcualte their normals. + * Given an array of faces, recalculate their normals. * this functions assumes all faces in the array are connected by edges. * * \param bm diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 757f1a83751..f0e5a64b1bd 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -2924,7 +2924,7 @@ static void edbm_fill_grid_prepare(BMesh *bm, int offset, int *r_span, bool span /* calculate the span by finding the next corner in 'verts' * we dont know what defines a corner exactly so find the 4 verts * in the loop with the greatest angle. - * Tag them and use the first tagged vertex to calcualte the span. + * Tag them and use the first tagged vertex to calculate the span. * * note: we may have already checked 'edbm_fill_grid_vert_tag_angle()' on each * vert, but advantage of de-duplicating is minimal. */ diff --git a/source/blender/modifiers/intern/MOD_build.c b/source/blender/modifiers/intern/MOD_build.c index 9e375b07972..a54cc80839b 100644 --- a/source/blender/modifiers/intern/MOD_build.c +++ b/source/blender/modifiers/intern/MOD_build.c @@ -109,7 +109,7 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), edgeMap = MEM_mallocN(sizeof(*edgeMap) * numEdge_src, "build modifier edgeMap"); faceMap = MEM_mallocN(sizeof(*faceMap) * numPoly_src, "build modifier faceMap"); -#pragma omp parallel sections if (numVert_src + numEdge_src + numPoly_src >= DM_OMP_LIMIT) +#pragma omp parallel sections if (numVert_src + numEdge_src + numPoly_src >= BKE_MESH_OMP_LIMIT) { #pragma omp section { range_vn_i(vertMap, numVert_src, 0); } -- cgit v1.2.3