diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-05-18 15:02:41 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-05-18 15:40:22 +0300 |
commit | b1584775515b9830d277343db7a25701fd054578 (patch) | |
tree | 03439d9adbe365076ffba4b0add26c129fe02deb | |
parent | 53376ec7fcd51d16027e56993e91ce472d7982b5 (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.c | 8 | ||||
-rw-r--r-- | tests/python/CMakeLists.txt | 19 |
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() |