BMesh: avoid OpenMP use for low poly meshes (counting selection)
authorCampbell Barton <ideasman42@gmail.com>
Fri, 6 Jun 2014 13:52:29 +0000 (23:52 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 6 Jun 2014 13:54:15 +0000 (23:54 +1000)
also use schedule(static) for simple for loops.

source/blender/bmesh/intern/bmesh_marking.c
source/blender/bmesh/intern/bmesh_operators.c
source/blender/editors/mesh/editmesh_utils.c

index eff3cf220f38383d296abfb64ffeed5303293c56..e23a57212342b68ded91339e263bc6b05ba431ad 100644 (file)
@@ -56,7 +56,7 @@ static void recount_totsels(BMesh *bm)
        tots[1] = &bm->totedgesel;
        tots[2] = &bm->totfacesel;
 
-#pragma omp parallel for schedule(dynamic)
+#pragma omp parallel for schedule(static) if (bm->totvert + bm->totedge + bm->totface >= BM_OMP_LIMIT)
        for (i = 0; i < 3; i++) {
                BMIter iter;
                BMElem *ele;
@@ -926,7 +926,7 @@ void BM_mesh_elem_hflag_disable_test(BMesh *bm, const char htype, const char hfl
                /* fast path for deselect all, avoid topology loops
                 * since we know all will be de-selected anyway. */
 
-#pragma omp parallel for schedule(dynamic) if (bm->totvert + bm->totedge + bm->totface >= BM_OMP_LIMIT)
+#pragma omp parallel for schedule(static) if (bm->totvert + bm->totedge + bm->totface >= BM_OMP_LIMIT)
                for (i = 0; i < 3; i++) {
                        BMIter iter;
                        BMElem *ele;
index 2a6b4d704190e8ee3ec2db8c9d55ce1c136676ea..dc419fab7399f2f082afdb75d593d7f14c01c07c 100644 (file)
@@ -591,7 +591,7 @@ void BMO_mesh_flag_disable_all(BMesh *bm, BMOperator *UNUSED(op), const char hty
        BMElemF *ele;
        int i;
 
-#pragma omp parallel for schedule(dynamic) if (bm->totvert + bm->totedge + bm->totface >= BM_OMP_LIMIT)
+#pragma omp parallel for schedule(static) if (bm->totvert + bm->totedge + bm->totface >= BM_OMP_LIMIT)
        for (i = 0; i < 3; i++) {
                if (htype & flag_types[i]) {
                        BMIter iter;
index 758cbd59794a3087f023ac36a1e4fff420122d01..8adaae5fe42e9bace4bc2e86115b560a7224d2f6 100644 (file)
@@ -1269,7 +1269,7 @@ void EDBM_mesh_reveal(BMEditMesh *em)
 
        /* Use tag flag to remember what was hidden before all is revealed.
         * BM_ELEM_HIDDEN --> BM_ELEM_TAG */
-#pragma omp parallel for schedule(dynamic) if (em->bm->totvert + em->bm->totedge + em->bm->totface >= BM_OMP_LIMIT)
+#pragma omp parallel for schedule(static) if (em->bm->totvert + em->bm->totedge + em->bm->totface >= BM_OMP_LIMIT)
        for (i = 0; i < 3; i++) {
                BMIter iter;
                BMElem *ele;