Commit: ced8fff5de0f614b3e08013335b8a222e808633f
Author: Sergey Sharybin
Date:   Thu Mar 30 11:23:26 2017 +0200
Branches: master
https://developer.blender.org/rBced8fff5de0f614b3e08013335b8a222e808633f

Fix T51051: Incorrect render on 32bit Linux

The issue was apparently caused by -fno-finite-math-only added to kernel.cpp
CFLAGS. For now just removed this flag from the kernel (we don't really want
it there at this point, and we don't have it for SSE/AVX optimized kernels).

But surely more investigation is needed here.

===================================================================

M       intern/cycles/CMakeLists.txt
M       intern/cycles/kernel/CMakeLists.txt

===================================================================

diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index 31fa15a2042..806a8660e8c 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -22,6 +22,7 @@ if(WITH_CYCLES_NATIVE_ONLY)
                -DWITH_KERNEL_NATIVE
        )
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
+       set(CYCLES_KERNEL_FLAGS "-march=native")
 elseif(NOT WITH_CPU_SSE)
        set(CXX_HAS_SSE FALSE)
        set(CXX_HAS_AVX FALSE)
@@ -59,10 +60,13 @@ elseif(WIN32 AND MSVC)
        set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox")
        set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} 
/Ox")
        set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL} /Ox")
+
+       set(CYCLES_KERNEL_FLAGS "/fp:fast -D_CRT_SECURE_NO_WARNINGS /GS-")
 elseif(CMAKE_COMPILER_IS_GNUCC)
        check_cxx_compiler_flag(-msse CXX_HAS_SSE)
        check_cxx_compiler_flag(-mavx CXX_HAS_AVX)
        check_cxx_compiler_flag(-mavx2 CXX_HAS_AVX2)
+       set(CYCLES_KERNEL_FLAGS "-ffast-math")
        if(CXX_HAS_SSE)
                set(CYCLES_SSE2_KERNEL_FLAGS "-ffast-math -msse -msse2 
-mfpmath=sse")
                set(CYCLES_SSE3_KERNEL_FLAGS "-ffast-math -msse -msse2 -msse3 
-mssse3 -mfpmath=sse")
@@ -79,6 +83,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
        check_cxx_compiler_flag(-msse CXX_HAS_SSE)
        check_cxx_compiler_flag(-mavx CXX_HAS_AVX)
        check_cxx_compiler_flag(-mavx2 CXX_HAS_AVX2)
+       set(CYCLES_KERNEL_FLAGS "-ffast-math")
        if(CXX_HAS_SSE)
                set(CYCLES_SSE2_KERNEL_FLAGS "-ffast-math -msse -msse2")
                set(CYCLES_SSE3_KERNEL_FLAGS "-ffast-math -msse -msse2 -msse3 
-mssse3")
diff --git a/intern/cycles/kernel/CMakeLists.txt 
b/intern/cycles/kernel/CMakeLists.txt
index 54151f06d31..dbc2ba2503a 100644
--- a/intern/cycles/kernel/CMakeLists.txt
+++ b/intern/cycles/kernel/CMakeLists.txt
@@ -347,6 +347,9 @@ endif()
 include_directories(${INC})
 include_directories(SYSTEM ${INC_SYS})
 
+set_source_files_properties(kernels/cpu/kernel.cpp PROPERTIES COMPILE_FLAGS 
"${CYCLES_KERNEL_FLAGS}")
+set_source_files_properties(kernels/cpu/kernel_split.cpp PROPERTIES 
COMPILE_FLAGS "${CYCLES_KERNEL_FLAGS}")
+
 if(CXX_HAS_SSE)
        list(APPEND SRC
                kernels/cpu/kernel_sse2.cpp

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to