[Bf-blender-cvs] [0498443] master: Cycles: enable /arch:AVX in msvc 11 and later versions for avx kernel

Sv. Lockal noreply at git.blender.org
Mon Feb 3 14:23:44 CET 2014


Commit: 04984430ce18a61560f793d0adf9b7acba4a05d4
Author: Sv. Lockal
Date:   Mon Feb 3 17:22:50 2014 +0400
https://developer.blender.org/rB04984430ce18a61560f793d0adf9b7acba4a05d4

Cycles: enable /arch:AVX in msvc 11 and later versions for avx kernel

This enables VEX-encoding in AVX kernel for windows msvc builds and gives 5-10% speedup for different scenes.

Reviewers: juicyfruit, dingto, brecht

Reviewed By: brecht

CC: brecht

Differential Revision: https://developer.blender.org/D284

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

M	intern/cycles/CMakeLists.txt

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

diff --git a/intern/cycles/CMakeLists.txt b/intern/cycles/CMakeLists.txt
index f8c4ca6..5c8d68b 100644
--- a/intern/cycles/CMakeLists.txt
+++ b/intern/cycles/CMakeLists.txt
@@ -15,17 +15,24 @@ include(cmake/external_libs.cmake)
 # todo: refactor this code to match scons
 
 if(WIN32 AND MSVC)
+	# /arch:AVX for VC2012 and above
+	if(NOT MSVC_VERSION LESS 1700)
+		set(CYCLES_AVX_ARCH_FLAGS "/arch:AVX")
+	elseif(NOT CMAKE_CL_64)
+		set(CYCLES_AVX_ARCH_FLAGS "/arch:SSE2")
+	endif()
+
 	# there is no /arch:SSE3, but intrinsics are available anyway
 	if(CMAKE_CL_64)
 		set(CYCLES_SSE2_KERNEL_FLAGS "/fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")
 		set(CYCLES_SSE3_KERNEL_FLAGS "/fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")
 		set(CYCLES_SSE41_KERNEL_FLAGS "/fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")
-		set(CYCLES_AVX_KERNEL_FLAGS "/fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-") #/arch:AVX for VC2012 and above
+		set(CYCLES_AVX_KERNEL_FLAGS "${CYCLES_AVX_ARCH_FLAGS} /fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")
 	else()
 		set(CYCLES_SSE2_KERNEL_FLAGS "/arch:SSE2 /fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")
 		set(CYCLES_SSE3_KERNEL_FLAGS "/arch:SSE2 /fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")
 		set(CYCLES_SSE41_KERNEL_FLAGS "/arch:SSE2 /fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")
-		set(CYCLES_AVX_KERNEL_FLAGS "/arch:SSE2 /fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-") #/arch:AVX for VC2012 and above
+		set(CYCLES_AVX_KERNEL_FLAGS "${CYCLES_AVX_ARCH_FLAGS} /fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-") 
 	endif()
 
 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast -D_CRT_SECURE_NO_WARNINGS /Gs-")




More information about the Bf-blender-cvs mailing list