Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brecht@blender.org>2021-05-18 15:02:41 +0300
committerBrecht Van Lommel <brecht@blender.org>2021-05-18 15:40:22 +0300
commitb1584775515b9830d277343db7a25701fd054578 (patch)
tree03439d9adbe365076ffba4b0add26c129fe02deb
parent53376ec7fcd51d16027e56993e91ce472d7982b5 (diff)
Fix ocean modifier giving different result on Arm than x86
And re-enable the test on macOS Arm. Ref T78710
-rw-r--r--source/blender/blenkernel/intern/ocean.c8
-rw-r--r--tests/python/CMakeLists.txt19
2 files changed, 14 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/ocean.c b/source/blender/blenkernel/intern/ocean.c
index d2f4d0702ed..9d53dad8d03 100644
--- a/source/blender/blenkernel/intern/ocean.c
+++ b/source/blender/blenkernel/intern/ocean.c
@@ -911,8 +911,12 @@ void BKE_ocean_init(struct Ocean *o,
for (i = 0; i < o->_M; i++) {
for (j = 0; j < o->_N; j++) {
/* This ensures we get a value tied to the surface location, avoiding dramatic surface
- * change with changing resolution. */
- int new_seed = seed + BLI_hash_int_2d(o->_kx[i] * 360.0f, o->_kz[j] * 360.0f);
+ * change with changing resolution.
+ * Explicitly cast to signed int first to ensure consistent behavior on all processors,
+ * since behavior of float to unsigned int cast is undefined in C. */
+ const int hash_x = o->_kx[i] * 360.0f;
+ const int hash_z = o->_kz[j] * 360.0f;
+ int new_seed = seed + BLI_hash_int_2d(hash_x, hash_z);
BLI_rng_seed(rng, new_seed);
float r1 = gaussRand(rng);
diff --git a/tests/python/CMakeLists.txt b/tests/python/CMakeLists.txt
index 4770a421ba9..92cebb7d274 100644
--- a/tests/python/CMakeLists.txt
+++ b/tests/python/CMakeLists.txt
@@ -240,17 +240,14 @@ add_blender_test(
--run-all-tests
)
-# disabled on macOS arm64 until updated & working
-if(NOT (APPLE AND ("${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64")))
- if(WITH_MOD_OCEANSIM)
- add_blender_test(
- physics_ocean
- ${TEST_SRC_DIR}/physics/ocean_test.blend
- --python ${TEST_PYTHON_DIR}/physics_ocean.py
- --
- --run-all-tests
- )
- endif()
+if(WITH_MOD_OCEANSIM)
+ add_blender_test(
+ physics_ocean
+ ${TEST_SRC_DIR}/physics/ocean_test.blend
+ --python ${TEST_PYTHON_DIR}/physics_ocean.py
+ --
+ --run-all-tests
+ )
endif()