[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60408] branches/soc-2013-cycles_mblur: Merged trunk into branch.
Gavin Howard
gavin.d.howard at gmail.com
Sat Sep 28 19:14:01 CEST 2013
Revision: 60408
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60408
Author: gdh
Date: 2013-09-28 17:14:00 +0000 (Sat, 28 Sep 2013)
Log Message:
-----------
Merged trunk into branch. Includes r60375 to r60407.
Revision Links:
--------------
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60375
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60407
Modified Paths:
--------------
branches/soc-2013-cycles_mblur/build_files/build_environment/install_deps.sh
branches/soc-2013-cycles_mblur/intern/cycles/device/device_cuda.cpp
branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_bvh.h
branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_compat_cuda.h
branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_globals.h
branches/soc-2013-cycles_mblur/intern/cycles/kernel/kernel_primitive.h
branches/soc-2013-cycles_mblur/intern/cycles/render/nodes.cpp
branches/soc-2013-cycles_mblur/intern/elbeem/CMakeLists.txt
branches/soc-2013-cycles_mblur/intern/elbeem/SConscript
branches/soc-2013-cycles_mblur/intern/elbeem/intern/attributes.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/controlparticles.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/isosurface.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/mvmcoords.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_blenderdumper.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_bsptree.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_geometryclass.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_geometrymodel.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_geometryobject.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_geometryshader.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_lighting.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_matrices.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_ray.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_vector3dim.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/ntl_world.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/parametrizer.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/particletracer.cpp
branches/soc-2013-cycles_mblur/intern/elbeem/intern/particletracer.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/simulation_object.cpp
branches/soc-2013-cycles_mblur/intern/elbeem/intern/simulation_object.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/solver_class.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/solver_control.cpp
branches/soc-2013-cycles_mblur/intern/elbeem/intern/solver_control.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/solver_interface.cpp
branches/soc-2013-cycles_mblur/intern/elbeem/intern/solver_interface.h
branches/soc-2013-cycles_mblur/intern/elbeem/intern/solver_main.cpp
branches/soc-2013-cycles_mblur/release/scripts/freestyle/style_modules/ChainingIterators.py
branches/soc-2013-cycles_mblur/release/scripts/freestyle/style_modules/PredicatesB1D.py
branches/soc-2013-cycles_mblur/release/scripts/freestyle/style_modules/PredicatesU1D.py
branches/soc-2013-cycles_mblur/release/scripts/freestyle/style_modules/parameter_editor.py
branches/soc-2013-cycles_mblur/release/scripts/freestyle/style_modules/shaders.py
branches/soc-2013-cycles_mblur/release/scripts/modules/bpy_types.py
branches/soc-2013-cycles_mblur/release/scripts/startup/bl_ui/properties_data_modifier.py
branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/boids.c
branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/particle_system.c
branches/soc-2013-cycles_mblur/source/blender/blenkernel/intern/smoke.c
branches/soc-2013-cycles_mblur/source/blender/blenlib/PIL_time_utildefines.h
branches/soc-2013-cycles_mblur/source/blender/editors/mesh/editmesh_knife.c
branches/soc-2013-cycles_mblur/source/blender/editors/screen/screendump.c
branches/soc-2013-cycles_mblur/source/blender/editors/space_node/drawnode.c
branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_ID.c
branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_nodetree.c
branches/soc-2013-cycles_mblur/source/blender/makesrna/intern/rna_wm_api.c
branches/soc-2013-cycles_mblur/source/blender/windowmanager/WM_keymap.h
branches/soc-2013-cycles_mblur/source/blender/windowmanager/intern/wm_keymap.c
branches/soc-2013-cycles_mblur/source/blenderplayer/bad_level_call_stubs/stubs.c
Property Changed:
----------------
branches/soc-2013-cycles_mblur/
Property changes on: branches/soc-2013-cycles_mblur
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-depsgraph_mt:57516,57900,57939-57940,57945,57958-57961,58151,58155-58156,58169,58277-58279,58282-58283,58711,58787,58789,58796,59086-59087,59163,59166,59170,59181,59259-59260
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57388-60374
+ /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573,58822,58989
/branches/soc-2013-depsgraph_mt:57516,57900,57939-57940,57945,57958-57961,58151,58155-58156,58169,58277-58279,58282-58283,58711,58787,58789,58796,59086-59087,59163,59166,59170,59181,59259-59260
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58587,58772,58774-58775,58828,58835,59032,59214,59220,59251,59601
/tags/blender-2.67b-release/blender:57122
/trunk/blender:57388-60407
Modified: branches/soc-2013-cycles_mblur/build_files/build_environment/install_deps.sh
===================================================================
--- branches/soc-2013-cycles_mblur/build_files/build_environment/install_deps.sh 2013-09-28 12:05:59 UTC (rev 60407)
+++ branches/soc-2013-cycles_mblur/build_files/build_environment/install_deps.sh 2013-09-28 17:14:00 UTC (rev 60408)
@@ -247,6 +247,8 @@
# FFMPEG optional libs.
VORBIS_USE=false
VORBIS_DEV=""
+OGG_USE=false
+OGG_DEV=""
THEORA_USE=false
THEORA_DEV=""
XVID_USE=false
@@ -1890,16 +1892,18 @@
# These libs should always be available in debian/ubuntu official repository...
OPENJPEG_DEV="libopenjpeg-dev"
VORBIS_DEV="libvorbis-dev"
+ OGG_DEV="libogg-dev"
THEORA_DEV="libtheora-dev"
_packages="gawk cmake cmake-curses-gui scons build-essential libjpeg-dev libpng-dev \
libfreetype6-dev libx11-dev libxi-dev wget libsqlite3-dev libbz2-dev \
libncurses5-dev libssl-dev liblzma-dev libreadline-dev $OPENJPEG_DEV \
- libopenal-dev libglew-dev yasm $THEORA_DEV $VORBIS_DEV \
+ libopenal-dev libglew-dev yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV \
libsdl1.2-dev libfftw3-dev patch bzip2"
OPENJPEG_USE=true
VORBIS_USE=true
+ OGG_USE=true
THEORA_USE=true
# Install newest libtiff-dev in debian/ubuntu.
@@ -2307,15 +2311,17 @@
# These libs should always be available in fedora/suse official repository...
OPENJPEG_DEV="openjpeg-devel"
VORBIS_DEV="libvorbis-devel"
+ OGG_DEV="libogg-devel"
THEORA_DEV="libtheora-devel"
_packages="gcc gcc-c++ make scons libtiff-devel freetype-devel libjpeg-devel\
libpng-devel libX11-devel libXi-devel wget ncurses-devel \
readline-devel $OPENJPEG_DEV openal-soft-devel \
- glew-devel yasm $THEORA_DEV $VORBIS_DEV patch"
+ glew-devel yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV patch"
OPENJPEG_USE=true
VORBIS_USE=true
+ OGG_USE=true
THEORA_USE=true
if [ $RPM = "FEDORA" -o $RPM = "RHEL" ]; then
@@ -2643,13 +2649,15 @@
# These libs should always be available in arch official repository...
OPENJPEG_DEV="openjpeg"
VORBIS_DEV="libvorbis"
+ OGG_DEV="libogg"
THEORA_DEV="libtheora"
_packages="base-devel scons cmake libxi glew libpng libtiff wget openal \
- $OPENJPEG_DEV $VORBIS_DEV $THEORA_DEV yasm sdl fftw"
+ $OPENJPEG_DEV $VORBIS_DEV $OGG_DEV $THEORA_DEV yasm sdl fftw"
OPENJPEG_USE=true
VORBIS_USE=true
+ OGG_USE=true
THEORA_USE=true
if $WITH_ALL; then
@@ -2912,6 +2920,10 @@
_packages="$_packages $VORBIS_DEV"
fi
+ if $OGG_USE; then
+ _packages="$_packages $OGG_DEV"
+ fi
+
if $XVID_USE; then
_packages="$_packages $XVID_DEV"
fi
Modified: branches/soc-2013-cycles_mblur/intern/cycles/device/device_cuda.cpp
===================================================================
--- branches/soc-2013-cycles_mblur/intern/cycles/device/device_cuda.cpp 2013-09-28 12:05:59 UTC (rev 60407)
+++ branches/soc-2013-cycles_mblur/intern/cycles/device/device_cuda.cpp 2013-09-28 17:14:00 UTC (rev 60408)
@@ -43,7 +43,9 @@
CUmodule cuModule;
map<device_ptr, bool> tex_interp_map;
int cuDevId;
+ int cuDevArchitecture;
bool first_error;
+ bool use_texture_storage;
struct PixelMem {
GLuint cuPBO;
@@ -173,6 +175,7 @@
{
first_error = true;
background = background_;
+ use_texture_storage = true;
cuDevId = info.num;
cuDevice = 0;
@@ -203,6 +206,15 @@
if(cuda_error_(result, "cuCtxCreate"))
return;
+ int major, minor;
+ cuDeviceComputeCapability(&major, &minor, cuDevId);
+ cuDevArchitecture = major*100 + minor*10;
+
+ /* In order to use full 6GB of memory on Titan cards, use arrays instead
+ * of textures. On earlier cards this seems slower, but on Titan it is
+ * actually slightly faster in tests. */
+ use_texture_storage = (cuDevArchitecture < 350);
+
cuda_pop_context();
}
@@ -210,8 +222,7 @@
{
task_pool.stop();
- cuda_push_context();
- cuda_assert(cuCtxDetach(cuContext))
+ cuda_assert(cuCtxDestroy(cuContext))
}
bool support_device(bool experimental)
@@ -448,91 +459,119 @@
CUarray_format_enum format;
size_t dsize = datatype_size(mem.data_type);
size_t size = mem.memory_size();
+ bool use_texture = interpolation || use_texture_storage;
- switch(mem.data_type) {
- case TYPE_UCHAR: format = CU_AD_FORMAT_UNSIGNED_INT8; break;
- case TYPE_UINT: format = CU_AD_FORMAT_UNSIGNED_INT32; break;
- case TYPE_INT: format = CU_AD_FORMAT_SIGNED_INT32; break;
- case TYPE_FLOAT: format = CU_AD_FORMAT_FLOAT; break;
- default: assert(0); return;
- }
+ if(use_texture) {
- CUtexref texref = NULL;
+ switch(mem.data_type) {
+ case TYPE_UCHAR: format = CU_AD_FORMAT_UNSIGNED_INT8; break;
+ case TYPE_UINT: format = CU_AD_FORMAT_UNSIGNED_INT32; break;
+ case TYPE_INT: format = CU_AD_FORMAT_SIGNED_INT32; break;
+ case TYPE_FLOAT: format = CU_AD_FORMAT_FLOAT; break;
+ default: assert(0); return;
+ }
- cuda_push_context();
- cuda_assert(cuModuleGetTexRef(&texref, cuModule, name))
+ CUtexref texref = NULL;
- if(!texref) {
- cuda_pop_context();
- return;
- }
+ cuda_push_context();
+ cuda_assert(cuModuleGetTexRef(&texref, cuModule, name))
- if(interpolation) {
- CUarray handle = NULL;
- CUDA_ARRAY_DESCRIPTOR desc;
-
- desc.Width = mem.data_width;
- desc.Height = mem.data_height;
- desc.Format = format;
- desc.NumChannels = mem.data_elements;
-
- cuda_assert(cuArrayCreate(&handle, &desc))
-
- if(!handle) {
+ if(!texref) {
cuda_pop_context();
return;
}
- if(mem.data_height > 1) {
- CUDA_MEMCPY2D param;
- memset(¶m, 0, sizeof(param));
- param.dstMemoryType = CU_MEMORYTYPE_ARRAY;
- param.dstArray = handle;
- param.srcMemoryType = CU_MEMORYTYPE_HOST;
- param.srcHost = (void*)mem.data_pointer;
- param.srcPitch = mem.data_width*dsize*mem.data_elements;
- param.WidthInBytes = param.srcPitch;
- param.Height = mem.data_height;
+ if(interpolation) {
+ CUarray handle = NULL;
+ CUDA_ARRAY_DESCRIPTOR desc;
- cuda_assert(cuMemcpy2D(¶m))
+ desc.Width = mem.data_width;
+ desc.Height = mem.data_height;
+ desc.Format = format;
+ desc.NumChannels = mem.data_elements;
+
+ cuda_assert(cuArrayCreate(&handle, &desc))
+
+ if(!handle) {
+ cuda_pop_context();
+ return;
+ }
+
+ if(mem.data_height > 1) {
+ CUDA_MEMCPY2D param;
+ memset(¶m, 0, sizeof(param));
+ param.dstMemoryType = CU_MEMORYTYPE_ARRAY;
+ param.dstArray = handle;
+ param.srcMemoryType = CU_MEMORYTYPE_HOST;
+ param.srcHost = (void*)mem.data_pointer;
+ param.srcPitch = mem.data_width*dsize*mem.data_elements;
+ param.WidthInBytes = param.srcPitch;
+ param.Height = mem.data_height;
+
+ cuda_assert(cuMemcpy2D(¶m))
+ }
+ else
+ cuda_assert(cuMemcpyHtoA(handle, 0, (void*)mem.data_pointer, size))
+
+ cuda_assert(cuTexRefSetArray(texref, handle, CU_TRSA_OVERRIDE_FORMAT))
+
+ cuda_assert(cuTexRefSetFilterMode(texref, CU_TR_FILTER_MODE_LINEAR))
+ cuda_assert(cuTexRefSetFlags(texref, CU_TRSF_NORMALIZED_COORDINATES))
+
+ mem.device_pointer = (device_ptr)handle;
+
+ stats.mem_alloc(size);
}
- else
- cuda_assert(cuMemcpyHtoA(handle, 0, (void*)mem.data_pointer, size))
+ else {
+ cuda_pop_context();
- cuda_assert(cuTexRefSetArray(texref, handle, CU_TRSA_OVERRIDE_FORMAT))
+ mem_alloc(mem, MEM_READ_ONLY);
+ mem_copy_to(mem);
- cuda_assert(cuTexRefSetFilterMode(texref, CU_TR_FILTER_MODE_LINEAR))
- cuda_assert(cuTexRefSetFlags(texref, CU_TRSF_NORMALIZED_COORDINATES))
+ cuda_push_context();
- mem.device_pointer = (device_ptr)handle;
+ cuda_assert(cuTexRefSetAddress(NULL, texref, cuda_device_ptr(mem.device_pointer), size))
+ cuda_assert(cuTexRefSetFilterMode(texref, CU_TR_FILTER_MODE_POINT))
+ cuda_assert(cuTexRefSetFlags(texref, CU_TRSF_READ_AS_INTEGER))
+ }
- stats.mem_alloc(size);
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list