diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-15 19:13:38 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-15 19:13:38 +0400 |
commit | db8024f4b54ac4cf83b5346fe1548c009fd21082 (patch) | |
tree | b005764126eff5502fcbae63048b0d17a46d6778 /intern/cycles/CMakeLists.txt | |
parent | 2bc78219135eba9b8079dc69ea7fd062a283a9b3 (diff) |
Fix #29259: cycles issues on certain processors. Now two versions of the kernel
are compiled, one SSE optimized and the other not, and it will choose between
them at runtime.
Diffstat (limited to 'intern/cycles/CMakeLists.txt')
-rw-r--r-- | intern/cycles/CMakeLists.txt | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt index d1ee5e0050d..cfff7485e61 100644 --- a/intern/cycles/CMakeLists.txt +++ b/intern/cycles/CMakeLists.txt @@ -9,31 +9,18 @@ include(cmake/external_libs.cmake) # Build Flags if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD) - set(GCC_OPTIM_FLAGS "-ffast-math -msse -msse2 -msse3") -endif() - -if(APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_OPTIM_FLAGS}") - set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") -endif() + set(WITH_CYCLES_OPTIMIZED_KERNEL ON) -if(WIN32) - if(MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") - set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + if(WIN32 AND MSVC) + set(CYCLES_OPTIMIZED_KERNEL_FLAGS "/Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast") elseif(CMAKE_COMPILER_IS_GNUCC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_OPTIM_FLAGS}") - set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") + set(CYCLES_OPTIMIZED_KERNEL_FLAGS "-ffast-math -msse -msse2 -msse3 -DGOGOGO") endif() endif() -if(UNIX AND NOT APPLE) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_OPTIM_FLAGS}") - set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") -endif() - -# not needed yet, is for open shading language -set(RTTI_DISABLE_FLAGS "") +# for OSL, not needed yet +# set(RTTI_DISABLE_FLAGS "-fno-rtti -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") +# set(RTTI_DISABLE_FLAGS "/GR- -DBOOST_NO_RTTI -DBOOST_NO_TYPEID") # Definitions and Includes @@ -42,6 +29,10 @@ add_definitions(${BOOST_DEFINITIONS} ${OPENIMAGEIO_DEFINITIONS}) add_definitions(-DCCL_NAMESPACE_BEGIN=namespace\ ccl\ {) add_definitions(-DCCL_NAMESPACE_END=}) +if(WITH_CYCLES_OPTIMIZED_KERNEL) + add_definitions(-DWITH_OPTIMIZED_KERNEL) +endif() + if(WITH_CYCLES_NETWORK) add_definitions(-DWITH_NETWORK) endif() |