Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Dinges <blender@dingto.org>2014-01-14 23:39:21 +0400
committerThomas Dinges <blender@dingto.org>2014-01-14 23:39:54 +0400
commit9351ac0d8577a2c76c238bbf2c365d811e986209 (patch)
tree51564853558f7219dfb67a3e095b5bb170bc35cb /intern/cycles/SConscript
parentd980c3eccbd020a9ff7137659e7cbfbc5adb125d (diff)
Cycles: Skip the compilation of the dedicated SSE2 kernel on x86-64, we can assume SSE2 here, so just re-use the regular one. Saves 500kb in the blender binary.
Reviewed by: brecht Differential Revision: https://developer.blender.org/D199
Diffstat (limited to 'intern/cycles/SConscript')
-rw-r--r--intern/cycles/SConscript69
1 files changed, 34 insertions, 35 deletions
diff --git a/intern/cycles/SConscript b/intern/cycles/SConscript
index 448375a04ff..e31fb5bed96 100644
--- a/intern/cycles/SConscript
+++ b/intern/cycles/SConscript
@@ -75,41 +75,40 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', '
incs.append(env['BF_PTHREADS_INC'])
# optimized kernel
-if env['WITH_BF_RAYOPTIMIZATION']:
- sse2_cxxflags = Split(env['CXXFLAGS'])
- sse3_cxxflags = Split(env['CXXFLAGS'])
- sse41_cxxflags = Split(env['CXXFLAGS'])
-
- if env['OURPLATFORM'] == 'win32-vc':
- # there is no /arch:SSE3, but intrinsics are available anyway
- sse2_cxxflags.append('/arch:SSE /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
- sse3_cxxflags.append('/arch:SSE /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
- sse41_cxxflags.append('/arch:SSE /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
- elif env['OURPLATFORM'] == 'win64-vc':
- sse2_cxxflags.append('-D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
- sse3_cxxflags.append('-D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
- sse41_cxxflags.append('-D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
- else:
- sse2_cxxflags.append('-ffast-math -msse -msse2 -mfpmath=sse'.split())
- sse3_cxxflags.append('-ffast-math -msse -msse2 -msse3 -mssse3 -mfpmath=sse'.split())
- sse41_cxxflags.append('-ffast-math -msse -msse2 -msse3 -mssse3 -msse4.1 -mfpmath=sse'.split())
-
- defs.append('WITH_OPTIMIZED_KERNEL')
- optim_defs = defs[:]
-
- if env['WITH_CYCLES_OPTIMIZED_KERNEL_SSE41']:
- cycles_sse41 = cycles.Clone()
- sse41_sources = [path.join('kernel', 'kernel_sse41.cpp')]
- cycles_sse41.BlenderLib('bf_intern_cycles_sse41', sse41_sources, incs, optim_defs, libtype=['intern'], priority=[10], cxx_compileflags=sse41_cxxflags)
- defs.append('WITH_CYCLES_OPTIMIZED_KERNEL_SSE41')
-
- cycles_sse3 = cycles.Clone()
- sse3_sources = [path.join('kernel', 'kernel_sse3.cpp')]
- cycles_sse3.BlenderLib('bf_intern_cycles_sse3', sse3_sources, incs, optim_defs, libtype=['intern'], priority=[10], cxx_compileflags=sse3_cxxflags)
-
- cycles_sse2 = cycles.Clone()
- sse2_sources = [path.join('kernel', 'kernel_sse2.cpp')]
- cycles_sse2.BlenderLib('bf_intern_cycles_sse2', sse2_sources, incs, optim_defs, libtype=['intern'], priority=[10], cxx_compileflags=sse2_cxxflags)
+sse2_cxxflags = Split(env['CXXFLAGS'])
+sse3_cxxflags = Split(env['CXXFLAGS'])
+sse41_cxxflags = Split(env['CXXFLAGS'])
+
+if env['OURPLATFORM'] == 'win32-vc':
+ # there is no /arch:SSE3, but intrinsics are available anyway
+ sse2_cxxflags.append('/arch:SSE /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
+ sse3_cxxflags.append('/arch:SSE /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
+ sse41_cxxflags.append('/arch:SSE /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
+elif env['OURPLATFORM'] == 'win64-vc':
+ sse2_cxxflags.append('-D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
+ sse3_cxxflags.append('-D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
+ sse41_cxxflags.append('-D_CRT_SECURE_NO_WARNINGS /fp:fast /Ox /Gs-'.split())
+else:
+ sse2_cxxflags.append('-ffast-math -msse -msse2 -mfpmath=sse'.split())
+ sse3_cxxflags.append('-ffast-math -msse -msse2 -msse3 -mssse3 -mfpmath=sse'.split())
+ sse41_cxxflags.append('-ffast-math -msse -msse2 -msse3 -mssse3 -msse4.1 -mfpmath=sse'.split())
+
+defs.append('WITH_OPTIMIZED_KERNEL')
+optim_defs = defs[:]
+
+if env['WITH_CYCLES_OPTIMIZED_KERNEL_SSE41']:
+ cycles_sse41 = cycles.Clone()
+ sse41_sources = [path.join('kernel', 'kernel_sse41.cpp')]
+ cycles_sse41.BlenderLib('bf_intern_cycles_sse41', sse41_sources, incs, optim_defs, libtype=['intern'], priority=[10], cxx_compileflags=sse41_cxxflags)
+ defs.append('WITH_CYCLES_OPTIMIZED_KERNEL_SSE41')
+
+cycles_sse3 = cycles.Clone()
+sse3_sources = [path.join('kernel', 'kernel_sse3.cpp')]
+cycles_sse3.BlenderLib('bf_intern_cycles_sse3', sse3_sources, incs, optim_defs, libtype=['intern'], priority=[10], cxx_compileflags=sse3_cxxflags)
+
+cycles_sse2 = cycles.Clone()
+sse2_sources = [path.join('kernel', 'kernel_sse2.cpp')]
+cycles_sse2.BlenderLib('bf_intern_cycles_sse2', sse2_sources, incs, optim_defs, libtype=['intern'], priority=[10], cxx_compileflags=sse2_cxxflags)
cycles.BlenderLib('bf_intern_cycles', sources, incs, defs, libtype=['intern'], priority=[0], cxx_compileflags=cxxflags)