[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42314] trunk/blender: Cycles
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Dec 1 17:33:28 CET 2011
Revision: 42314
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42314
Author: blendix
Date: 2011-12-01 16:33:21 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
Cycles
* Compile all of cycles with -ffast-math again
* Add scons compilation of cuda binaries, tested on mac/linux.
* Add UI option for supported/experimental features, to make it
more clear what is supported, opencl/subdivision is experimental.
* Remove cycles xml exporter, was just for testing.
Modified Paths:
--------------
trunk/blender/SConstruct
trunk/blender/build_files/scons/config/darwin-config.py
trunk/blender/build_files/scons/config/linux-config.py
trunk/blender/build_files/scons/tools/Blender.py
trunk/blender/build_files/scons/tools/btools.py
trunk/blender/intern/cycles/CMakeLists.txt
trunk/blender/intern/cycles/SConscript
trunk/blender/intern/cycles/blender/CMakeLists.txt
trunk/blender/intern/cycles/blender/addon/__init__.py
trunk/blender/intern/cycles/blender/addon/enums.py
trunk/blender/intern/cycles/blender/addon/properties.py
trunk/blender/intern/cycles/blender/addon/ui.py
trunk/blender/intern/cycles/blender/addon/xml.py
trunk/blender/intern/cycles/blender/blender_mesh.cpp
trunk/blender/intern/cycles/blender/blender_sync.cpp
trunk/blender/intern/cycles/blender/blender_sync.h
trunk/blender/intern/cycles/device/device_cuda.cpp
Modified: trunk/blender/SConstruct
===================================================================
--- trunk/blender/SConstruct 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/SConstruct 2011-12-01 16:33:21 UTC (rev 42314)
@@ -581,6 +581,14 @@
source.remove('CMakeLists.txt')
source=['intern/cycles/doc/license/'+s for s in source]
scriptinstall.append(env.Install(dir=dir,source=source))
+
+ # cuda binaries
+ if env['WITH_BF_CYCLES_CUDA_BINARIES']:
+ dir=os.path.join(env['BF_INSTALLDIR'], VERSION, 'scripts', 'addons','cycles', 'lib')
+ for arch in env['BF_CYCLES_CUDA_BINARIES_ARCH']:
+ kernel_build_dir = os.path.join(B.root_build_dir, 'intern/cycles/kernel')
+ cubin_file = os.path.join(kernel_build_dir, "kernel_%s.cubin" % arch)
+ scriptinstall.append(env.Install(dir=dir,source=cubin_file))
if env['WITH_BF_INTERNATIONAL']:
internationalpaths=['release' + os.sep + 'datafiles']
Modified: trunk/blender/build_files/scons/config/darwin-config.py
===================================================================
--- trunk/blender/build_files/scons/config/darwin-config.py 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/build_files/scons/config/darwin-config.py 2011-12-01 16:33:21 UTC (rev 42314)
@@ -283,7 +283,7 @@
#BF_EXPAT_LIB = 'expat'
#BF_EXPAT_LIBPATH = '/usr/lib'
-#Cycles
+# Cycles
WITH_BF_CYCLES = True
WITH_BF_OIIO = True
@@ -298,6 +298,10 @@
BF_BOOST_LIB = 'boost_date_time-mt boost_filesystem-mt boost_regex-mt boost_system-mt boost_thread-mt'
BF_BOOST_LIBPATH = BF_BOOST + '/lib'
+WITH_BF_CYCLES_CUDA_BINARIES = False
+BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21']
+
#Ray trace optimization
if MACOSX_ARCHITECTURE == 'x86_64' or MACOSX_ARCHITECTURE == 'i386':
WITH_BF_RAYOPTIMIZATION = True
Modified: trunk/blender/build_files/scons/config/linux-config.py
===================================================================
--- trunk/blender/build_files/scons/config/linux-config.py 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/build_files/scons/config/linux-config.py 2011-12-01 16:33:21 UTC (rev 42314)
@@ -219,6 +219,10 @@
WITH_BF_CYCLES = WITH_BF_OIIO and WITH_BF_BOOST
+WITH_BF_CYCLES_CUDA_BINARIES = False
+BF_CYCLES_CUDA_NVCC = '/usr/local/cuda/bin/nvcc'
+BF_CYCLES_CUDA_BINARIES_ARCH = ['sm_13', 'sm_20', 'sm_21']
+
WITH_BF_OPENMP = True
#Ray trace optimization
Modified: trunk/blender/build_files/scons/tools/Blender.py
===================================================================
--- trunk/blender/build_files/scons/tools/Blender.py 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/build_files/scons/tools/Blender.py 2011-12-01 16:33:21 UTC (rev 42314)
@@ -291,7 +291,7 @@
syslibs += Split(lenv['BF_JPEG_LIB'])
syslibs += Split(lenv['BF_PNG_LIB'])
-
+
syslibs += lenv['LLIBS']
return syslibs
@@ -588,6 +588,8 @@
commands.getoutput(cmd)
cmd = 'mkdir %s/kernel' % (cinstalldir)
commands.getoutput(cmd)
+ cmd = 'mkdir %s/lib' % (cinstalldir)
+ commands.getoutput(cmd)
cmd = 'cp -R %s/blender/addon/*.py %s/' % (croot, cinstalldir)
commands.getoutput(cmd)
cmd = 'cp -R %s/doc/license %s/license' % (croot, cinstalldir)
@@ -596,6 +598,8 @@
commands.getoutput(cmd)
cmd = 'cp -R %s/kernel/svm %s/util/util_color.h %s/util/util_math.h %s/util/util_transform.h %s/util/util_types.h %s/kernel/' % (croot, croot, croot, croot, croot, cinstalldir)
commands.getoutput(cmd)
+ cmd = 'cp -R %s/../intern/cycles/kernel/*.cubin %s/lib/' % (builddir, cinstalldir)
+ commands.getoutput(cmd)
if env['WITH_OSX_STATICPYTHON']:
cmd = 'mkdir %s/%s.app/Contents/MacOS/%s/python/'%(installdir,binary, VERSION)
Modified: trunk/blender/build_files/scons/tools/btools.py
===================================================================
--- trunk/blender/build_files/scons/tools/btools.py 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/build_files/scons/tools/btools.py 2011-12-01 16:33:21 UTC (rev 42314)
@@ -157,7 +157,7 @@
'WITH_BF_JEMALLOC', 'WITH_BF_STATICJEMALLOC', 'BF_JEMALLOC', 'BF_JEMALLOC_INC', 'BF_JEMALLOC_LIBPATH', 'BF_JEMALLOC_LIB', 'BF_JEMALLOC_LIB_STATIC',
'BUILDBOT_BRANCH',
'WITH_BF_3DMOUSE', 'WITH_BF_STATIC3DMOUSE', 'BF_3DMOUSE', 'BF_3DMOUSE_INC', 'BF_3DMOUSE_LIB', 'BF_3DMOUSE_LIBPATH', 'BF_3DMOUSE_LIB_STATIC',
- 'WITH_BF_CYCLES', 'WITH_BF_CYCLES_BINARIES' 'BF_CYCLES_BINARIES_ARCH',
+ 'WITH_BF_CYCLES', 'WITH_BF_CYCLES_CUDA_BINARIES' 'BF_CYCLES_CUDA_NVCC', 'BF_CYCLES_CUDA_NVCC',
'WITH_BF_OIIO', 'WITH_BF_STATICOIIO', 'BF_OIIO', 'BF_OIIO_INC', 'BF_OIIO_LIB', 'BF_OIIO_LIB_STATIC', 'BF_OIIO_LIBPATH',
'WITH_BF_BOOST', 'WITH_BF_STATICBOOST', 'BF_BOOST', 'BF_BOOST_INC', 'BF_BOOST_LIB', 'BF_BOOST_LIB_STATIC', 'BF_BOOST_LIBPATH'
]
@@ -544,7 +544,9 @@
localopts.AddVariables(
(BoolVariable('WITH_BF_CYCLES', 'Build with the Cycles engine', True)),
- (BoolVariable('WITH_BF_CYCLES_BINARIES', 'Build with precompiled CUDA binaries', False)),
+ (BoolVariable('WITH_BF_CYCLES_CUDA_BINARIES', 'Build with precompiled CUDA binaries', False)),
+ ('BF_CYCLES_CUDA_NVCC', 'CUDA nvcc compiler path', ''),
+ ('BF_CYCLES_CUDA_BINARIES_ARCH', 'CUDA architectures to compile binaries for', []),
(BoolVariable('WITH_BF_OIIO', 'Build with OpenImageIO', False)),
(BoolVariable('WITH_BF_STATICOIIO', 'Staticly link to OpenImageIO', False)),
Modified: trunk/blender/intern/cycles/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/CMakeLists.txt 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/intern/cycles/CMakeLists.txt 2011-12-01 16:33:21 UTC (rev 42314)
@@ -10,12 +10,14 @@
if(WITH_RAYOPTIMIZATION AND SUPPORT_SSE_BUILD)
set(WITH_CYCLES_OPTIMIZED_KERNEL ON)
+endif()
- if(WIN32 AND MSVC)
- set(CYCLES_OPTIMIZED_KERNEL_FLAGS "/arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast")
- elseif(CMAKE_COMPILER_IS_GNUCC)
- set(CYCLES_OPTIMIZED_KERNEL_FLAGS "-ffast-math -msse -msse2 -msse3")
- endif()
+if(WIN32 AND MSVC)
+ set(CYCLES_OPTIMIZED_KERNEL_FLAGS "/arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast -D_CRT_SECURE_NO_WARNINGS")
+elseif(CMAKE_COMPILER_IS_GNUCC)
+ set(CYCLES_OPTIMIZED_KERNEL_FLAGS "-ffast-math -msse -msse2 -msse3")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffast-math")
endif()
# for OSL, not needed yet
Modified: trunk/blender/intern/cycles/SConscript
===================================================================
--- trunk/blender/intern/cycles/SConscript 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/intern/cycles/SConscript 2011-12-01 16:33:21 UTC (rev 42314)
@@ -14,6 +14,7 @@
incs = []
defs = []
+cxxflags = []
defs.append('CCL_NAMESPACE_BEGIN=namespace ccl {')
defs.append('CCL_NAMESPACE_END=}')
@@ -22,7 +23,7 @@
defs.append('WITH_MULTI')
defs.append('WITH_CUDA')
-if env['WITH_BF_CYCLES_BINARIES']:
+if env['WITH_BF_CYCLES_CUDA_BINARIES']:
defs.append('WITH_CUDA_BINARIES')
incs.extend('. bvh render device kernel kernel/osl kernel/svm util subd'.split())
@@ -33,12 +34,17 @@
incs.append(cycles['BF_BOOST_INC'])
incs.append(cycles['BF_PYTHON_INC'])
+if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
+ cxxflags.append('-D_CRT_SECURE_NO_WARNINGS /fp:fast'.split())
+else:
+ cxxflags.append('-ffast-math'.split())
+
# optimized kernel
if env['WITH_BF_RAYOPTIMIZATION']:
optim_cxxflags = []
if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
- optim_cxxflags.append('/Ox /Ot /arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /EHsc /fp:fast'.split())
+ optim_cxxflags.append('/arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast'.split())
else:
optim_cxxflags.append('-ffast-math -msse -msse2 -msse3'.split())
@@ -48,5 +54,10 @@
cycles_optim = cycles.Clone()
cycles_optim.BlenderLib('bf_intern_cycles_optimized', optim_sources, incs, optim_defs, libtype=['intern'], priority=[0], compileflags=[None], cxx_compileflags=optim_cxxflags)
-cycles.BlenderLib('bf_intern_cycles', sources, incs, defs, libtype=['intern'], priority=[0], compileflags=[None])
+cycles.BlenderLib('bf_intern_cycles', sources, incs, defs, libtype=['intern'], priority=[0], compileflags=[None], cxx_compileflags=cxxflags)
+# cuda kernel binaries
+if env['WITH_BF_CYCLES_CUDA_BINARIES']:
+ kernel_binaries = SConscript(['kernel/SConscript'])
+ cycles.Depends("device/device_cuda.o", kernel_binaries)
+
Modified: trunk/blender/intern/cycles/blender/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/blender/CMakeLists.txt 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/intern/cycles/blender/CMakeLists.txt 2011-12-01 16:33:21 UTC (rev 42314)
@@ -39,7 +39,6 @@
addon/presets.py
addon/properties.py
addon/ui.py
- addon/xml.py
)
blender_add_lib(bf_intern_cycles "${SRC}" "${INC}" "${INC_SYS}")
Modified: trunk/blender/intern/cycles/blender/addon/__init__.py
===================================================================
--- trunk/blender/intern/cycles/blender/addon/__init__.py 2011-12-01 14:46:36 UTC (rev 42313)
+++ trunk/blender/intern/cycles/blender/addon/__init__.py 2011-12-01 16:33:21 UTC (rev 42314)
@@ -33,7 +33,7 @@
"category": "Render"}
import bpy
-from . import ui, properties, xml, engine, presets
+from . import ui, properties, engine, presets
class CyclesRender(bpy.types.RenderEngine):
@@ -77,13 +77,11 @@
def register():
properties.register()
ui.register()
- xml.register()
presets.register()
bpy.utils.register_module(__name__)
def unregister():
- xml.unregister()
ui.unregister()
properties.unregister()
presets.unregister()
Modified: trunk/blender/intern/cycles/blender/addon/enums.py
===================================================================
--- trunk/blender/intern/cycles/blender/addon/enums.py 2011-12-01 14:46:36 UTC (rev 42313)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list