[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25133] trunk/blender: * provide SCons support to enabling jaguarandi SIMD raytracer optimizations for real :)

Nathan Letwory jesterking at letwory.net
Sat Dec 5 01:26:21 CET 2009


Revision: 25133
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25133
Author:   jesterking
Date:     2009-12-05 01:26:20 +0100 (Sat, 05 Dec 2009)

Log Message:
-----------
* 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)

Modified Paths:
--------------
    trunk/blender/source/blender/render/SConscript
    trunk/blender/source/blender/render/intern/raytrace/reorganize.h
    trunk/blender/tools/btools.py

Modified: trunk/blender/source/blender/render/SConscript
===================================================================
--- trunk/blender/source/blender/render/SConscript	2009-12-04 19:13:22 UTC (rev 25132)
+++ trunk/blender/source/blender/render/SConscript	2009-12-05 00:26:20 UTC (rev 25133)
@@ -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 @@
     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 )

Modified: trunk/blender/source/blender/render/intern/raytrace/reorganize.h
===================================================================
--- trunk/blender/source/blender/render/intern/raytrace/reorganize.h	2009-12-04 19:13:22 UTC (rev 25132)
+++ trunk/blender/source/blender/render/intern/raytrace/reorganize.h	2009-12-05 00:26:20 UTC (rev 25133)
@@ -26,13 +26,16 @@
  *
  * ***** END GPL LICENSE BLOCK *****
  */
-
 #include <stdio.h>
 #include <algorithm>
 #include <math.h>
 #include <vector>
 #include <queue>
 
+#ifdef _WIN32
+#define INFINITY FLT_MAX // in mingw math.h: (1.0F/0.0F). This generates compile error, though.
+#endif
+
 extern int tot_pushup;
 extern int tot_pushdown;
 

Modified: trunk/blender/tools/btools.py
===================================================================
--- trunk/blender/tools/btools.py	2009-12-04 19:13:22 UTC (rev 25132)
+++ trunk/blender/tools/btools.py	2009-12-05 00:26:20 UTC (rev 25133)
@@ -5,9 +5,9 @@
 
 import SCons.Variables
 try:
-	import subprocess
+    import subprocess
 except ImportError:
-	pass
+    pass
 import string
 import glob
 import shutil
@@ -17,279 +17,280 @@
 BoolVariable = SCons.Variables.BoolVariable
 
 def print_arguments(args, bc):
-	if len(args):
-		for k,v in args.iteritems():
-			if type(v)==list:
-				v = ' '.join(v)
-			print '\t'+bc.OKBLUE+k+bc.ENDC+' = '+bc.OKGREEN + v + bc.ENDC
-	else:
-		print '\t'+bc.WARNING+'No  command-line arguments given'+bc.ENDC
+    if len(args):
+        for k,v in args.iteritems():
+            if type(v)==list:
+                v = ' '.join(v)
+            print '\t'+bc.OKBLUE+k+bc.ENDC+' = '+bc.OKGREEN + v + bc.ENDC
+    else:
+        print '\t'+bc.WARNING+'No  command-line arguments given'+bc.ENDC
 
 def validate_arguments(args, bc):
-	opts_list = [
-			'WITH_BF_PYTHON', 'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'WITH_BF_STATICPYTHON', 'BF_PYTHON_LIB_STATIC', 'BF_PYTHON_DLL',
-			'WITH_BF_OPENAL', 'BF_OPENAL', 'BF_OPENAL_INC', 'BF_OPENAL_LIB', 'BF_OPENAL_LIBPATH', 'WITH_BF_STATICOPENAL', 'BF_OPENAL_LIB_STATIC',
-			'WITH_BF_SDL', 'BF_SDL', 'BF_SDL_INC', 'BF_SDL_LIB', 'BF_SDL_LIBPATH',
-			'BF_LIBSAMPLERATE', 'BF_LIBSAMPLERATE_INC', 'BF_LIBSAMPLERATE_LIB', 'BF_LIBSAMPLERATE_LIBPATH',
-			'WITH_BF_JACK', 'BF_JACK', 'BF_JACK_INC', 'BF_JACK_LIB', 'BF_JACK_LIBPATH',
-			'WITH_BF_SNDFILE', 'BF_SNDFILE', 'BF_SNDFILE_INC', 'BF_SNDFILE_LIB', 'BF_SNDFILE_LIBPATH',
-			'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH',
-			'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH', 'WITH_BF_STATICOPENEXR', 'BF_OPENEXR_LIB_STATIC',
-			'WITH_BF_DDS',
-			'WITH_BF_FFMPEG', 'BF_FFMPEG_LIB','BF_FFMPEG_EXTRA', 'BF_FFMPEG',  'BF_FFMPEG_INC',
-			'WITH_BF_OGG', 'BF_OGG', 'BF_OGG_LIB',
-			'WITH_BF_JPEG', 'BF_JPEG', 'BF_JPEG_INC', 'BF_JPEG_LIB', 'BF_JPEG_LIBPATH',
-			'WITH_BF_OPENJPEG', 'BF_OPENJPEG', 'BF_OPENJPEG_INC', 'BF_OPENJPEG_LIB', 'BF_OPENJPEG_LIBPATH',
-			'WITH_BF_REDCODE', 'BF_REDCODE', 'BF_REDCODE_INC', 'BF_REDCODE_LIB', 'BF_REDCODE_LIBPATH',
-			'WITH_BF_PNG', 'BF_PNG', 'BF_PNG_INC', 'BF_PNG_LIB', 'BF_PNG_LIBPATH',
-			'BF_TIFF', 'BF_TIFF_INC', 'BF_TIFF_LIB', 'BF_TIFF_LIBPATH',
-			'WITH_BF_ZLIB', 'BF_ZLIB', 'BF_ZLIB_INC', 'BF_ZLIB_LIB', 'BF_ZLIB_LIBPATH',
-			'WITH_BF_INTERNATIONAL',
-			'BF_GETTEXT', 'BF_GETTEXT_INC', 'BF_GETTEXT_LIB', 'BF_GETTEXT_LIBPATH',
-			'WITH_BF_ICONV', 'BF_ICONV', 'BF_ICONV_INC', 'BF_ICONV_LIB', 'BF_ICONV_LIBPATH',
-			'WITH_BF_GAMEENGINE', 'WITH_BF_BULLET', 'BF_BULLET', 'BF_BULLET_INC', 'BF_BULLET_LIB',
-			'BF_WINTAB', 'BF_WINTAB_INC',
-			'WITH_BF_FREETYPE', 'BF_FREETYPE', 'BF_FREETYPE_INC', 'BF_FREETYPE_LIB', 'BF_FREETYPE_LIBPATH',
-			'WITH_BF_QUICKTIME', 'BF_QUICKTIME', 'BF_QUICKTIME_INC', 'BF_QUICKTIME_LIB', 'BF_QUICKTIME_LIBPATH',
-			'WITH_BF_FFTW3', 'BF_FFTW3', 'BF_FFTW3_INC', 'BF_FFTW3_LIB', 'BF_FFTW3_LIBPATH',
-			'WITH_BF_STATICOPENGL', 'BF_OPENGL', 'BF_OPENGL_INC', 'BF_OPENGL_LIB', 'BF_OPENGL_LIBPATH', 'BF_OPENGL_LIB_STATIC',
-			'WITH_BF_COLLADA', 'BF_COLLADA', 'BF_COLLADA_INC', 'BF_COLLADA_LIB', 'BF_OPENCOLLADA', 'BF_OPENCOLLADA_INC', 'BF_OPENCOLLADA_LIB', 'BF_OPENCOLLADA_LIBPATH', 'BF_PCRE', 'BF_PCRE_LIB', 'BF_PCRE_LIBPATH', 'BF_EXPAT', 'BF_EXPAT_LIB', 'BF_EXPAT_LIBPATH',
-			'WITH_BF_PLAYER',
-			'WITH_BF_NOBLENDER',
-			'WITH_BF_BINRELOC',
-			'WITH_BF_LZO', 'WITH_BF_LZMA',
-			'LCGDIR',
-			'BF_CXX', 'WITH_BF_STATICCXX', 'BF_CXX_LIB_STATIC',
-			'BF_TWEAK_MODE', 'BF_SPLIT_SRC',
-			'WITHOUT_BF_INSTALL',
-			'WITHOUT_BF_PYTHON_INSTALL',
-			'WITH_BF_OPENMP',
-			'WITH_GHOST_COCOA',
-			'USE_QTKIT',
-			'BF_FANCY', 'BF_QUIET',
-			'BF_X264_CONFIG',
-			'BF_XVIDCORE_CONFIG',
-			'WITH_BF_LCMS', 'BF_LCMS_LIB',
-			'WITH_BF_DOCS',
-			'BF_NUMJOBS',
-			'BF_MSVS',
-			'WITH_BF_FHS',
-			'BF_VERSION',
-			'BF_GHOST_DEBUG'
-			]
-	
-	# Have options here that scons expects to be lists
-	opts_list_split = [
-			'BF_PYTHON_LINKFLAGS',
-			'BF_OPENGL_LINKFLAGS',
-			'CFLAGS', 'CCFLAGS', 'CXXFLAGS', 'CPPFLAGS',
-			'REL_CFLAGS', 'REL_CCFLAGS', 'REL_CXXFLAGS',
-			'BGE_CXXFLAGS',
-			'BF_PROFILE_CFLAGS', 'BF_PROFILE_CCFLAGS', 'BF_PROFILE_CXXFLAGS', 'BF_PROFILE_LINKFLAGS',
-			'BF_DEBUG_CFLAGS', 'BF_DEBUG_CCFLAGS', 'BF_DEBUG_CXXFLAGS',
-			'C_WARN', 'CC_WARN', 'CXX_WARN',
-			'LLIBS', 'PLATFORM_LINKFLAGS','MACOSX_ARCHITECTURE',
-	]
-	
-	
-	arg_list = ['BF_DEBUG', 'BF_QUIET', 'BF_CROSS', 'BF_UPDATE',
-			'BF_INSTALLDIR', 'BF_TOOLSET', 'BF_BINNAME',
-			'BF_BUILDDIR', 'BF_FANCY', 'BF_QUICK', 'BF_PROFILE',
-			'BF_BSC', 'BF_CONFIG',
-			'BF_PRIORITYLIST', 'BF_BUILDINFO','CC', 'CXX', 'BF_QUICKDEBUG',
-			'BF_LISTDEBUG', 'LCGDIR', 'BF_X264_CONFIG', 'BF_XVIDCORE_CONFIG',
-			'BF_UNIT_TEST']
+    opts_list = [
+            'WITH_BF_PYTHON', 'BF_PYTHON', 'BF_PYTHON_VERSION', 'BF_PYTHON_INC', 'BF_PYTHON_BINARY', 'BF_PYTHON_LIB', 'BF_PYTHON_LIBPATH', 'WITH_BF_STATICPYTHON', 'BF_PYTHON_LIB_STATIC', 'BF_PYTHON_DLL',
+            'WITH_BF_OPENAL', 'BF_OPENAL', 'BF_OPENAL_INC', 'BF_OPENAL_LIB', 'BF_OPENAL_LIBPATH', 'WITH_BF_STATICOPENAL', 'BF_OPENAL_LIB_STATIC',
+            'WITH_BF_SDL', 'BF_SDL', 'BF_SDL_INC', 'BF_SDL_LIB', 'BF_SDL_LIBPATH',
+            'BF_LIBSAMPLERATE', 'BF_LIBSAMPLERATE_INC', 'BF_LIBSAMPLERATE_LIB', 'BF_LIBSAMPLERATE_LIBPATH',
+            'WITH_BF_JACK', 'BF_JACK', 'BF_JACK_INC', 'BF_JACK_LIB', 'BF_JACK_LIBPATH',
+            'WITH_BF_SNDFILE', 'BF_SNDFILE', 'BF_SNDFILE_INC', 'BF_SNDFILE_LIB', 'BF_SNDFILE_LIBPATH',
+            'BF_PTHREADS', 'BF_PTHREADS_INC', 'BF_PTHREADS_LIB', 'BF_PTHREADS_LIBPATH',
+            'WITH_BF_OPENEXR', 'BF_OPENEXR', 'BF_OPENEXR_INC', 'BF_OPENEXR_LIB', 'BF_OPENEXR_LIBPATH', 'WITH_BF_STATICOPENEXR', 'BF_OPENEXR_LIB_STATIC',
+            'WITH_BF_DDS',
+            'WITH_BF_FFMPEG', 'BF_FFMPEG_LIB','BF_FFMPEG_EXTRA', 'BF_FFMPEG',  'BF_FFMPEG_INC',
+            'WITH_BF_OGG', 'BF_OGG', 'BF_OGG_LIB',
+            'WITH_BF_JPEG', 'BF_JPEG', 'BF_JPEG_INC', 'BF_JPEG_LIB', 'BF_JPEG_LIBPATH',
+            'WITH_BF_OPENJPEG', 'BF_OPENJPEG', 'BF_OPENJPEG_INC', 'BF_OPENJPEG_LIB', 'BF_OPENJPEG_LIBPATH',
+            'WITH_BF_REDCODE', 'BF_REDCODE', 'BF_REDCODE_INC', 'BF_REDCODE_LIB', 'BF_REDCODE_LIBPATH',
+            'WITH_BF_PNG', 'BF_PNG', 'BF_PNG_INC', 'BF_PNG_LIB', 'BF_PNG_LIBPATH',
+            'BF_TIFF', 'BF_TIFF_INC', 'BF_TIFF_LIB', 'BF_TIFF_LIBPATH',
+            'WITH_BF_ZLIB', 'BF_ZLIB', 'BF_ZLIB_INC', 'BF_ZLIB_LIB', 'BF_ZLIB_LIBPATH',
+            'WITH_BF_INTERNATIONAL',
+            'BF_GETTEXT', 'BF_GETTEXT_INC', 'BF_GETTEXT_LIB', 'BF_GETTEXT_LIBPATH',
+            'WITH_BF_ICONV', 'BF_ICONV', 'BF_ICONV_INC', 'BF_ICONV_LIB', 'BF_ICONV_LIBPATH',

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list