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:
authorNathan Letwory <nathan@letworyinteractive.com>2009-12-05 03:26:20 +0300
committerNathan Letwory <nathan@letworyinteractive.com>2009-12-05 03:26:20 +0300
commitc2b71607d23fc2768ea6f8eabcaeec01daefcf30 (patch)
tree54cdaa7cde7e378f0408583a13fca456e02f1ff0 /source/blender/render/SConscript
parentc7c1fda642b3cea1ec022123921e1ee06c9b2acb (diff)
* provide SCons support to enabling jaguarandi SIMD raytracer optimizations for real :)
Until now only SSE switches were defined, but to really enjoy the SIMD structures, the __SSE__ define needs to be given. This can now be done with setting in your user-config.py WITH_BF_RAYOPTIMIZATION=True (or WITH_BF_RAYOPTIMIZATION=1 on command-line)
Diffstat (limited to 'source/blender/render/SConscript')
-rw-r--r--source/blender/render/SConscript34
1 files changed, 22 insertions, 12 deletions
diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript
index 63ef83a0cfe..dfce2267898 100644
--- a/source/blender/render/SConscript
+++ b/source/blender/render/SConscript
@@ -2,17 +2,20 @@
Import ('env')
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc', 'win32-mingw'):
- # FIXME: need to set the appropriate flags for msvc, otherwise we get warnings
- cflags = []
- cxxflags = []
+ # FIXME: need to set the appropriate flags for msvc, otherwise we get warnings
+ if env['WITH_BF_RAYOPTIMIZATION']:
+ cflags = env['CCFLAGS'] + ['/arch:SSE']
+ else:
+ cflags = env['CCFLAGS']
+ cxxflags = []
if env['OURPLATFORM'] == 'darwin':
- if env['MACOSX_ARCHITECTURE'] in ('i386', 'x86_64'):
- cflags = env['CFLAGS'] + ['-mfpmath=sse']
- cxxflags = env['CXXFLAGS'] + ['-mfpmath=sse']
- else:
- cflags = env['CFLAGS']
- cxxflags = env['CXXFLAGS']
+ if env['MACOSX_ARCHITECTURE'] in ('i386', 'x86_64') and env['WITH_BF_RAYOPTIMIZATION']:
+ cflags = env['CFLAGS'] + ['-mfpmath=sse']
+ cxxflags = env['CXXFLAGS'] + ['-mfpmath=sse']
+ else:
+ cflags = env['CFLAGS']
+ cxxflags = env['CXXFLAGS']
sources = env.Glob('intern/source/*.c')
raysources = env.Glob('intern/raytrace/*.cpp')
@@ -31,15 +34,22 @@ if env['WITH_BF_OPENEXR']:
defs.append('WITH_OPENEXR')
if env['OURPLATFORM'] == 'linux2':
-# SSE is NOT safe all the time on linux, plus that ignores users compile flags and therefore no no
+# SSE is NOT safe all the time on linux, plus that ignores users compile flags and therefore no no
# cflags = ['-O2','-msse2','-mfpmath=sse', '-pthread']
# cxxflags = ['-O2','-msse2','-mfpmath=sse', '-pthread']
- cflags = env['CCFLAGS']
- cxxflags = env['CXXFLAGS']
+ if env['WITH_BF_RAYOPTIMIZATION']:
+ cflags = env['CCFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread']
+ cxxflags = env['CXXFLAGS'] + ['-O2','-msse2','-mfpmath=sse', '-pthread']
+ else:
+ cflags = env['CCFLAGS']
+ cxxflags = env['CXXFLAGS']
incs += ' ../../../extern/binreloc/include'
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
incs += ' ' + env['BF_PTHREADS_INC']
+if env['WITH_BF_RAYOPTIMIZATION']:
+ defs.append('__SSE__')
+
env.BlenderLib ( libname = 'bf_render', sources = sources, includes = Split(incs), defines=defs, libtype='core', priority=145, compileflags=cflags )
env.BlenderLib ( libname = 'bf_render_raytrace', sources = raysources, includes = Split(incs), defines=defs, libtype='core', priority=145, compileflags=cflags, cxx_compileflags=cxxflags )