diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-01-31 14:51:35 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-01-31 14:56:20 +0300 |
commit | c82b8c5944d85a24fcb1b6552e970accb4628c9d (patch) | |
tree | a524a7755566440e87c5d8145669b6932c99e9ed | |
parent | a075f45526eccb218314368859ac4ce9138bd0be (diff) |
Fix tests failing on AMD Ryzen, due TBB initialization order issue
Similar fix as the one we did for the blender executable, see T72015.
-rw-r--r-- | build_files/cmake/Modules/GTestTesting.cmake | 9 | ||||
-rw-r--r-- | source/creator/CMakeLists.txt | 18 |
2 files changed, 14 insertions, 13 deletions
diff --git a/build_files/cmake/Modules/GTestTesting.cmake b/build_files/cmake/Modules/GTestTesting.cmake index 30b10ae5980..c9f62906ae0 100644 --- a/build_files/cmake/Modules/GTestTesting.cmake +++ b/build_files/cmake/Modules/GTestTesting.cmake @@ -40,9 +40,14 @@ macro(BLENDER_SRC_GTEST_EX) add_executable(${TARGET_NAME} ${ARG_SRC} ${MANIFEST}) target_include_directories(${TARGET_NAME} PUBLIC "${TEST_INC}") target_include_directories(${TARGET_NAME} SYSTEM PUBLIC "${TEST_INC_SYS}") + target_link_libraries(${TARGET_NAME} ${ARG_EXTRA_LIBS} ${PLATFORM_LINKLIBS}) + if(WITH_TBB) + # Force TBB libraries to be in front of MKL (part of OpenImageDenoise), so + # that it is initialized before MKL and static library initialization order + # issues are avoided. + target_link_libraries(${TARGET_NAME} ${TBB_LIBRARIES}) + endif() target_link_libraries(${TARGET_NAME} - ${ARG_EXTRA_LIBS} - ${PLATFORM_LINKLIBS} bf_testing_main bf_intern_eigen bf_intern_guardedalloc diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 82c45b4fe64..690c332c20e 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -38,20 +38,16 @@ blender_include_dirs( ) set(LIB - # This forces TBB libraries to be in front of MKL (which is a part of OpenImageDenoise). - # - # The need of this comes to need to ensure static libraries initialization order, making it - # so TBB is initialized prior to MKL (or any other dpeendnecy). - # - # This isn't fully robust but seems to work. - ${TBB_LIBRARIES} - bf_windowmanager ) -# Note: this should not be needed, but causes issues in some situations: -# See reply to daf290dcc80c. -if(WITH_TBB AND WITH_OPENIMAGEDENOISE) +if(WITH_TBB) + # Force TBB libraries to be in front of MKL (part of OpenImageDenoise), so + # that it is initialized before MKL and static library initialization order + # issues are avoided. + # + # This isn't fully robust but seems to work. + list(INSERT LIB 0 ${TBB_LIBRARIES}) list(INSERT LIB 0 bf_blenkernel) endif() |