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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2010-07-20 14:22:49 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2010-07-20 14:22:49 +0400
commitef9357365c057e88d79c0701604cb2175d030520 (patch)
tree8068d01077b27739087f5def09bf24c72dd508ef /source/blender/render/SConscript
parent99c7b0d5c5b41a1efb8becb6f310d08d0d1620f1 (diff)
Workaround #20324: clouds (and other) textures bump mapping generates black
faces. Only happens with scons/msvc and SSE enabled for raytracing. Why this happens exactly I don't know, I've tried to look for errors in the code but couldn't find any, the perlin noise code somehow is generating NaN values, but it is getting sane inputs. I suspect this is due to the render module being compiled with /arch:SSE and other parts not. For now I've made only the render_raytrace module compile with SSE, which seems to solve the problem, but is mostly a workaround.
Diffstat (limited to 'source/blender/render/SConscript')
-rw-r--r--source/blender/render/SConscript33
1 files changed, 18 insertions, 15 deletions
diff --git a/source/blender/render/SConscript b/source/blender/render/SConscript
index 366f6bd723c..bce24fe38a1 100644
--- a/source/blender/render/SConscript
+++ b/source/blender/render/SConscript
@@ -8,36 +8,37 @@ incs = 'intern/include #/intern/guardedalloc ../blenlib ../makesdna ../makesrna'
incs += ' extern/include ../blenkernel ../radiosity/extern/include ../imbuf'
incs += ' ../include ../blenloader ../../../intern/smoke/extern'
-cflags = env['CCFLAGS']
-cxxflags = env['CXXFLAGS']
+cflags_raytrace = env['CCFLAGS']
+cxxflags_raytrace = env['CXXFLAGS']
defs = []
+defs_raytrace = []
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
if env['WITH_BF_RAYOPTIMIZATION']:
- cflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
- cxxflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cxxflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
if env['OURPLATFORM'] == 'win32-mingw':
if env['WITH_BF_RAYOPTIMIZATION']:
- cflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
- cxxflags = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cxxflags_raytrace = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
if env['OURPLATFORM'] == 'darwin':
if env['MACOSX_ARCHITECTURE'] in ('i386', 'x86_64') and env['WITH_BF_RAYOPTIMIZATION']:
- cflags = env['CFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
- cxxflags = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cflags_raytrace = env['CFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cxxflags_raytrace = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
if env['OURPLATFORM'] == 'linux2':
if env['WITH_BF_RAYOPTIMIZATION']:
- cflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
- cxxflags = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cxxflags_raytrace = env['CXXFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
incs += ' ../../../extern/binreloc/include'
if env['OURPLATFORM'] == 'linuxcross':
if env['WITH_BF_RAYOPTIMIZATION']:
- cflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
- cxxflags = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
+ cxxflags_raytrace = env['CCFLAGS'] + env['BF_RAYOPTIMIZATION_SSE_FLAGS']
if env['WITH_BF_QUICKTIME']:
defs.append('WITH_QUICKTIME')
@@ -53,10 +54,12 @@ if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
# HACK: To fix problem with error 'MMX instruction set not enabled' from mmintrin.h
#
if env['OURPLATFORM'] == 'linuxcross':
- defs.append('__MMX__')
+ defs.append('__SSE__')
+ defs_raytrace.append('__MMX__')
if env['WITH_BF_RAYOPTIMIZATION']:
defs.append('__SSE__')
+ defs_raytrace.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 )
+env.BlenderLib ( libname = 'bf_render', sources = sources, includes = Split(incs), defines=defs, libtype='core', priority=145 )
+env.BlenderLib ( libname = 'bf_render_raytrace', sources = raysources, includes = Split(incs), defines=defs_raytrace, libtype='core', priority=145, compileflags=cflags_raytrace, cxx_compileflags=cxxflags_raytrace )