[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42482] branches/soc-2011-tomato: Merging r42461 through r42481 from trunk into soc-2011-tomato

Sergey Sharybin sergey.vfx at gmail.com
Wed Dec 7 10:24:46 CET 2011


Revision: 42482
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42482
Author:   nazgul
Date:     2011-12-07 09:24:45 +0000 (Wed, 07 Dec 2011)
Log Message:
-----------
Merging r42461 through r42481 from trunk into soc-2011-tomato

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42461
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42481

Modified Paths:
--------------
    branches/soc-2011-tomato/build_files/scons/tools/btools.py
    branches/soc-2011-tomato/intern/cycles/kernel/CMakeLists.txt
    branches/soc-2011-tomato/intern/cycles/kernel/SConscript
    branches/soc-2011-tomato/source/blender/blenkernel/intern/DerivedMesh.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/seqeffects.c
    branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
    branches/soc-2011-tomato/source/blender/editors/mesh/editmesh.c
    branches/soc-2011-tomato/source/blender/editors/object/object_vgroup.c
    branches/soc-2011-tomato/source/blender/editors/sculpt_paint/paint_vertex.c
    branches/soc-2011-tomato/source/blender/editors/space_node/node_draw.c
    branches/soc-2011-tomato/source/blender/editors/space_outliner/outliner_select.c
    branches/soc-2011-tomato/source/blender/makesdna/DNA_object_types.h
    branches/soc-2011-tomato/source/blender/makesrna/intern/rna_nodetree.c
    branches/soc-2011-tomato/source/blender/python/intern/bpy_driver.c

Property Changed:
----------------
    branches/soc-2011-tomato/
    branches/soc-2011-tomato/source/blender/editors/space_outliner/


Property changes on: branches/soc-2011-tomato
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-42460
   + /branches/soc-2011-cucumber:37517
/branches/vgroup_modifiers:38694-39989
/trunk/blender:36831-42481

Modified: branches/soc-2011-tomato/build_files/scons/tools/btools.py
===================================================================
--- branches/soc-2011-tomato/build_files/scons/tools/btools.py	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/build_files/scons/tools/btools.py	2011-12-07 09:24:45 UTC (rev 42482)
@@ -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_CUDA_BINARIES' 'BF_CYCLES_CUDA_NVCC', 'BF_CYCLES_CUDA_NVCC',
+            'WITH_BF_CYCLES', 'WITH_BF_CYCLES_CUDA_BINARIES' 'BF_CYCLES_CUDA_NVCC', 'BF_CYCLES_CUDA_NVCC', 'WITH_BF_CYCLES_CUDA_THREADED_COMPILE',
             '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'
             ]
@@ -545,6 +545,7 @@
     localopts.AddVariables(
         (BoolVariable('WITH_BF_CYCLES', 'Build with the Cycles engine', True)),
         (BoolVariable('WITH_BF_CYCLES_CUDA_BINARIES', 'Build with precompiled CUDA binaries', False)),
+        (BoolVariable('WITH_BF_CYCLES_CUDA_THREADED_COMPILE', 'Build several render kernels at once (using BF_NUMJOBS)', False)),
         ('BF_CYCLES_CUDA_NVCC', 'CUDA nvcc compiler path', ''),
         ('BF_CYCLES_CUDA_BINARIES_ARCH', 'CUDA architectures to compile binaries for', []),
 

Modified: branches/soc-2011-tomato/intern/cycles/kernel/CMakeLists.txt
===================================================================
--- branches/soc-2011-tomato/intern/cycles/kernel/CMakeLists.txt	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/intern/cycles/kernel/CMakeLists.txt	2011-12-07 09:24:45 UTC (rev 42482)
@@ -129,7 +129,7 @@
 add_library(cycles_kernel ${SRC} ${SRC_HEADERS} ${SRC_SVM_HEADERS})
 
 if(WITH_CYCLES_OPTIMIZED_KERNEL)
-	SET_SOURCE_FILES_PROPERTIES(kernel_optimized.cpp PROPERTIES COMPILE_FLAGS ${CYCLES_OPTIMIZED_KERNEL_FLAGS})
+	set_source_files_properties(kernel_optimized.cpp PROPERTIES COMPILE_FLAGS "${CYCLES_OPTIMIZED_KERNEL_FLAGS}")
 endif()
 
 if(WITH_CYCLES_CUDA)

Modified: branches/soc-2011-tomato/intern/cycles/kernel/SConscript
===================================================================
--- branches/soc-2011-tomato/intern/cycles/kernel/SConscript	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/intern/cycles/kernel/SConscript	2011-12-07 09:24:45 UTC (rev 42482)
@@ -34,6 +34,7 @@
 
     # dependencies
     dependencies = ['kernel.cu'] + kernel.Glob('*.h') + kernel.Glob('../util/*.h') + kernel.Glob('svm/*.h')
+    last_cubin_file = None
 
     # add command for each cuda architecture
     for arch in cuda_archs:
@@ -45,6 +46,12 @@
         kernel.Depends(cubin_file, dependencies)
 
         kernel_binaries.append(cubin_file)
+        
+        if not env['WITH_BF_CYCLES_CUDA_THREADED_COMPILE']:
+            # trick to compile one kernel at a time to reduce memory usage
+            if last_cubin_file:
+                kernel.Depends(cubin_file, last_cubin_file)
+            last_cubin_file = cubin_file
 
 Return('kernel_binaries')
 

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/DerivedMesh.c	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/DerivedMesh.c	2011-12-07 09:24:45 UTC (rev 42482)
@@ -60,6 +60,7 @@
 #include "BKE_texture.h"
 #include "BKE_multires.h"
 #include "BKE_armature.h"
+#include "BKE_deform.h"
 
 #ifdef WITH_GAMEENGINE
 #include "BKE_navmesh_conversion.h"
@@ -625,40 +626,49 @@
 		r_rgb[1]= blend * (1.0f-((weight-0.75f)*4.0f));
 		r_rgb[2]= 0.0f;
 	}
+	else {
+		/* exceptional value, unclamped or nan,
+		 * avoid uninitialized memory use */
+		r_rgb[0]= 1.0f;
+		r_rgb[1]= 0.0f;
+		r_rgb[2]= 1.0f;
+	}
 }
 
 /* draw_flag's for calc_weightpaint_vert_color */
 enum {
 	CALC_WP_MULTIPAINT= (1<<0),
-	CALC_WP_AUTO_NORMALIZE= (1<<1),
+	CALC_WP_AUTO_NORMALIZE= (1<<1)
 };
 
 static void calc_weightpaint_vert_color(Object *ob, ColorBand *coba, int vert, unsigned char *col, char *dg_flags, int selected, int UNUSED(unselected), const int draw_flag)
 {
 	Mesh *me = ob->data;
-	float colf[4], input = 0.0f;
-	int i;
-
+	float input = 0.0f;
 	
 	int make_black= FALSE;
 
 	if (me->dvert) {
+		MDeformVert *dvert= &me->dvert[vert];
+
 		if ((selected > 1) && (draw_flag & CALC_WP_MULTIPAINT)) {
-			
 			int was_a_nonzero= FALSE;
-			for (i=0; i<me->dvert[vert].totweight; i++) {
+			int i;
+
+			MDeformWeight *dw= dvert->dw;
+			for (i = dvert->totweight; i > 0; i--, dw++) {
 				/* in multipaint, get the average if auto normalize is inactive
 				 * get the sum if it is active */
-				if(dg_flags[me->dvert[vert].dw[i].def_nr]) {
-					if(me->dvert[vert].dw[i].weight) {
-						input+= me->dvert[vert].dw[i].weight;
+				if (dg_flags[dw->def_nr]) {
+					if (dw->weight) {
+						input += dw->weight;
 						was_a_nonzero= TRUE;
 					}
 				}
 			}
 
 			/* make it black if the selected groups have no weight on a vertex */
-			if(was_a_nonzero == FALSE) {
+			if (was_a_nonzero == FALSE) {
 				make_black = TRUE;
 			}
 			else if ((draw_flag & CALC_WP_AUTO_NORMALIZE) == FALSE) {
@@ -667,11 +677,7 @@
 		}
 		else {
 			/* default, non tricky behavior */
-			for (i=0; i<me->dvert[vert].totweight; i++) {
-				if (me->dvert[vert].dw[i].def_nr==ob->actdef-1) {
-					input+=me->dvert[vert].dw[i].weight;
-				}
-			}
+			input= defvert_find_weight(dvert, ob->actdef-1);
 		}
 	}
 	
@@ -680,20 +686,23 @@
 		col[2] = 0;
 		col[1] = 0;
 		col[0] = 255;
-		return;
 	}
+	else {
+		float colf[4];
+		CLAMP(input, 0.0f, 1.0f);
 
-	CLAMP(input, 0.0f, 1.0f);	
+		colf[0]= colf[1]= colf[2]= -1;
 
-	if(coba)
-		do_colorband(coba, input, colf);
-	else
-		weight_to_rgb(colf, input);
-	
-	col[3] = (unsigned char)(colf[0] * 255.0f);
-	col[2] = (unsigned char)(colf[1] * 255.0f);
-	col[1] = (unsigned char)(colf[2] * 255.0f);
-	col[0] = 255;
+		if(coba)
+			do_colorband(coba, input, colf);
+		else
+			weight_to_rgb(colf, input);
+
+		col[3] = (unsigned char)(colf[0] * 255.0f);
+		col[2] = (unsigned char)(colf[1] * 255.0f);
+		col[1] = (unsigned char)(colf[2] * 255.0f);
+		col[0] = 255;
+	}
 }
 
 static ColorBand *stored_cb= NULL;

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/seqeffects.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/seqeffects.c	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/seqeffects.c	2011-12-07 09:24:45 UTC (rev 42482)
@@ -1581,7 +1581,7 @@
 static void precalc_wipe_zone(WipeZone *wipezone, WipeVars *wipe, int xo, int yo)
 {
 	wipezone->flip = (wipe->angle < 0);
-	wipezone->angle = pow(fabsf(wipe->angle)/45.0f, log(xo)/M_LN2);
+	wipezone->angle = tan(DEG2RAD(fabsf(wipe->angle)));
 	wipezone->xo = xo;
 	wipezone->yo = yo;
 	wipezone->width = (int)(wipe->edgeWidth*((xo+yo)/2.0f));

Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c	2011-12-07 09:24:45 UTC (rev 42482)
@@ -1232,7 +1232,7 @@
 		if(marker && (marker->flag&MARKER_DISABLED)==0) {
 #ifdef WITH_LIBMV
 			int width, height, origin[2], tracked= 0, need_readjust= 0;
-			float pos[2], margin[2];
+			float pos[2], margin[2], dim[2];
 			double x1, y1, x2, y2;
 			ImBuf *ibuf= NULL;
 			MovieTrackingMarker marker_new, *marker_keyed;
@@ -1248,7 +1248,8 @@
 			else nextfra= curfra+1;
 
 			/* margin from frame boundaries */
-			sub_v2_v2v2(margin, track->pat_max, track->pat_min);
+			sub_v2_v2v2(dim, track->pat_max, track->pat_min);
+			margin[0]= margin[1]= MAX2(dim[0], dim[1]) / 2.0f;
 
 			margin[0]= MAX2(margin[0], (float)track->margin / ibuf_new->x);
 			margin[1]= MAX2(margin[1], (float)track->margin / ibuf_new->y);
@@ -1361,7 +1362,7 @@
 					{
 						/* check if there's no keyframe/tracked markers before tracking marker.
 						   if so -- create disabled marker before currently tracking "segment" */
-						put_disabled_marker(track, marker, 1, 0);
+						put_disabled_marker(track, marker, !context->backwards, 0);
 					}
 				}
 
@@ -1385,7 +1386,7 @@
 				/* make currently tracked segment be finished with disabled marker */
 				#pragma omp critical
 				{
-					put_disabled_marker(track, &marker_new, 0, 0);
+					put_disabled_marker(track, &marker_new, context->backwards, 0);
 				}
 			} else {
 				marker_new= *marker;

Modified: branches/soc-2011-tomato/source/blender/editors/mesh/editmesh.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/mesh/editmesh.c	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/source/blender/editors/mesh/editmesh.c	2011-12-07 09:24:45 UTC (rev 42482)
@@ -1575,7 +1575,7 @@
 	ot->poll= ED_operator_editmesh;
 	
 	/* flags */
-	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	ot->flag= OPTYPE_UNDO;
 	
 	ot->prop= RNA_def_enum(ot->srna, "type", prop_separate_types, 0, "Type", "");
 }

Modified: branches/soc-2011-tomato/source/blender/editors/object/object_vgroup.c
===================================================================
--- branches/soc-2011-tomato/source/blender/editors/object/object_vgroup.c	2011-12-07 09:21:50 UTC (rev 42481)
+++ branches/soc-2011-tomato/source/blender/editors/object/object_vgroup.c	2011-12-07 09:24:45 UTC (rev 42482)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list