[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(&param, 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(&param))
+				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(&param, 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(&param))
+				}
+				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