Revision: 56950
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56950
Author:   miikah
Date:     2013-05-21 18:57:19 +0000 (Tue, 21 May 2013)
Log Message:
-----------
Fix: Smoke simulator produced slightly different results on every run if openmp 
was enabled.

This was a typical threading issue. Move that particular function out of the 
parallel block.

Modified Paths:
--------------
    trunk/blender/intern/smoke/intern/FLUID_3D.cpp

Modified: trunk/blender/intern/smoke/intern/FLUID_3D.cpp
===================================================================
--- trunk/blender/intern/smoke/intern/FLUID_3D.cpp      2013-05-21 17:25:35 UTC 
(rev 56949)
+++ trunk/blender/intern/smoke/intern/FLUID_3D.cpp      2013-05-21 18:57:19 UTC 
(rev 56950)
@@ -365,6 +365,7 @@
        int zEnd=_zRes;
 #endif
 
+       wipeBoundariesSL(0, _zRes);
 
 #if PARALLEL==1
        #pragma omp parallel
@@ -376,7 +377,6 @@
                int zEnd = (int)((float)(i+1)*partSize + 0.5f);
 #endif
 
-               wipeBoundariesSL(zBegin, zEnd);
                addVorticity(zBegin, zEnd);
                addBuoyancy(_heat, _density, gravity, zBegin, zEnd);
                addForce(zBegin, zEnd);
@@ -879,7 +879,7 @@
        if (zEnd == _zRes)
        {
                index=0;
-               int indexx=0;
+               int index_top=0;
                const int cellsslab = totalCells - slabSize;
 
                for (y = 0; y < _yRes; y++)
@@ -887,19 +887,19 @@
                        {
 
                                // back slab
-                               indexx = index + cellsslab;
-                               _xVelocity[indexx] = 0.0f;
-                               _yVelocity[indexx] = 0.0f;
-                               _zVelocity[indexx] = 0.0f;
-                               _density[indexx] = 0.0f;
+                               index_top = index + cellsslab;
+                               _xVelocity[index_top] = 0.0f;
+                               _yVelocity[index_top] = 0.0f;
+                               _zVelocity[index_top] = 0.0f;
+                               _density[index_top] = 0.0f;
                                if (_fuel) {
-                                       _fuel[index] = 0.0f;
-                                       _react[index] = 0.0f;
+                                       _fuel[index_top] = 0.0f;
+                                       _react[index_top] = 0.0f;
                                }
                                if (_color_r) {
-                                       _color_r[index] = 0.0f;
-                                       _color_g[index] = 0.0f;
-                                       _color_b[index] = 0.0f;
+                                       _color_r[index_top] = 0.0f;
+                                       _color_g[index_top] = 0.0f;
+                                       _color_b[index_top] = 0.0f;
                                }
                        }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to