diff options
author | Thomas Dinges <blender@dingto.org> | 2014-01-14 23:39:21 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2014-01-14 23:39:54 +0400 |
commit | 9351ac0d8577a2c76c238bbf2c365d811e986209 (patch) | |
tree | 51564853558f7219dfb67a3e095b5bb170bc35cb /intern/cycles/SConscript | |
parent | d980c3eccbd020a9ff7137659e7cbfbc5adb125d (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/SConscript | 69 |
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) |