[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42362] branches/bmesh/blender: svn merge ^/trunk/blender -r42333:42361

Campbell Barton ideasman42 at gmail.com
Sat Dec 3 00:02:24 CET 2011


Revision: 42362
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42362
Author:   campbellbarton
Date:     2011-12-02 23:02:21 +0000 (Fri, 02 Dec 2011)
Log Message:
-----------
svn merge ^/trunk/blender -r42333:42361

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

Modified Paths:
--------------
    branches/bmesh/blender/intern/cycles/CMakeLists.txt
    branches/bmesh/blender/intern/cycles/SConscript
    branches/bmesh/blender/intern/cycles/app/cycles_xml.cpp
    branches/bmesh/blender/intern/cycles/blender/blender_shader.cpp
    branches/bmesh/blender/intern/cycles/kernel/CMakeLists.txt
    branches/bmesh/blender/intern/cycles/kernel/kernel_bvh.h
    branches/bmesh/blender/intern/cycles/kernel/osl/nodes/CMakeLists.txt
    branches/bmesh/blender/intern/cycles/kernel/osl/nodes/node_color.h
    branches/bmesh/blender/intern/cycles/kernel/osl/nodes/node_mix.osl
    branches/bmesh/blender/intern/cycles/kernel/svm/svm.h
    branches/bmesh/blender/intern/cycles/kernel/svm/svm_mix.h
    branches/bmesh/blender/intern/cycles/kernel/svm/svm_sepcomb_rgb.h
    branches/bmesh/blender/intern/cycles/kernel/svm/svm_types.h
    branches/bmesh/blender/intern/cycles/render/mesh.cpp
    branches/bmesh/blender/intern/cycles/render/nodes.cpp
    branches/bmesh/blender/intern/cycles/render/nodes.h
    branches/bmesh/blender/intern/cycles/subd/subd_mesh.cpp
    branches/bmesh/blender/intern/cycles/util/util_cache.h
    branches/bmesh/blender/intern/cycles/util/util_system.cpp
    branches/bmesh/blender/source/blender/blenlib/BLI_math_geom.h
    branches/bmesh/blender/source/blender/blenlib/intern/math_geom.c
    branches/bmesh/blender/source/blender/blenlib/intern/scanfill.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_interp.c
    branches/bmesh/blender/source/blender/bmesh/intern/bmesh_polygon.c
    branches/bmesh/blender/source/blender/editors/animation/keyframing.c
    branches/bmesh/blender/source/blender/editors/armature/meshlaplacian.c
    branches/bmesh/blender/source/blender/editors/gpencil/gpencil_buttons.c
    branches/bmesh/blender/source/blender/editors/object/object_relations.c
    branches/bmesh/blender/source/blender/editors/space_clip/clip_ops.c
    branches/bmesh/blender/source/blender/editors/space_node/node_edit.c
    branches/bmesh/blender/source/blender/editors/uvedit/uvedit_unwrap_ops.c
    branches/bmesh/blender/source/blender/nodes/shader/nodes/node_shader_camera.c
    branches/bmesh/blender/source/blender/nodes/shader/nodes/node_shader_hueSatVal.c
    branches/bmesh/blender/source/blender/quicktime/apple/qtkit_export.m
    branches/bmesh/blender/source/blender/quicktime/apple/quicktime_export.c
    branches/bmesh/blender/source/blender/render/intern/source/rayshade.c
    branches/bmesh/blender/source/blender/render/intern/source/render_texture.c
    branches/bmesh/blender/source/blender/render/intern/source/shadeinput.c
    branches/bmesh/blender/source/blender/windowmanager/intern/wm_event_system.c

Added Paths:
-----------
    branches/bmesh/blender/intern/cycles/kernel/osl/nodes/node_camera.osl
    branches/bmesh/blender/intern/cycles/kernel/osl/nodes/node_hsv.osl
    branches/bmesh/blender/intern/cycles/kernel/svm/svm_camera.h
    branches/bmesh/blender/intern/cycles/kernel/svm/svm_hsv.h

Property Changed:
----------------
    branches/bmesh/blender/
    branches/bmesh/blender/release/
    branches/bmesh/blender/source/blender/editors/space_outliner/


Property changes on: branches/bmesh/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/soc-2011-cucumber:37517
/trunk/blender:39992-42333
   + /branches/soc-2011-cucumber:37517
/trunk/blender:39992-42361

Modified: branches/bmesh/blender/intern/cycles/CMakeLists.txt
===================================================================
--- branches/bmesh/blender/intern/cycles/CMakeLists.txt	2011-12-02 22:35:05 UTC (rev 42361)
+++ branches/bmesh/blender/intern/cycles/CMakeLists.txt	2011-12-02 23:02:21 UTC (rev 42362)
@@ -16,7 +16,7 @@
 	set(CYCLES_OPTIMIZED_KERNEL_FLAGS "/arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /EHsc")
 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast -D_CRT_SECURE_NO_WARNINGS /EHsc")
 elseif(CMAKE_COMPILER_IS_GNUCC)
-	set(CYCLES_OPTIMIZED_KERNEL_FLAGS "-ffast-math -msse -msse2 -msse3")
+	set(CYCLES_OPTIMIZED_KERNEL_FLAGS "-ffast-math -msse -msse2 -msse3 -mfpmath=sse")
 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ffast-math")
 endif()
 

Modified: branches/bmesh/blender/intern/cycles/SConscript
===================================================================
--- branches/bmesh/blender/intern/cycles/SConscript	2011-12-02 22:35:05 UTC (rev 42361)
+++ branches/bmesh/blender/intern/cycles/SConscript	2011-12-02 23:02:21 UTC (rev 42362)
@@ -46,13 +46,14 @@
     if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'):
         optim_cxxflags.append('/arch:SSE2 -D_CRT_SECURE_NO_WARNINGS /fp:fast /EHsc'.split())
     else:
-        optim_cxxflags.append('-ffast-math -msse -msse2 -msse3'.split())
+        optim_cxxflags.append('-ffast-math -msse -msse2 -msse3 -mfpmath=sse'.split())
     
-    optim_defs = defs + ['WITH_OPTIMIZED_KERNEL']
+    defs.append('WITH_OPTIMIZED_KERNEL')
+    optim_defs = defs[:]
     optim_sources = [path.join('kernel', 'kernel_optimized.cpp')]
 
     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_optim.BlenderLib('bf_intern_cycles_optimized', optim_sources, incs, optim_defs, libtype=['intern'], priority=[10], compileflags=[None], cxx_compileflags=optim_cxxflags)
 
 cycles.BlenderLib('bf_intern_cycles', sources, incs, defs, libtype=['intern'], priority=[0], compileflags=[None], cxx_compileflags=cxxflags)
 

Modified: branches/bmesh/blender/intern/cycles/app/cycles_xml.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/app/cycles_xml.cpp	2011-12-02 22:35:05 UTC (rev 42361)
+++ branches/bmesh/blender/intern/cycles/app/cycles_xml.cpp	2011-12-02 23:02:21 UTC (rev 42362)
@@ -339,64 +339,33 @@
 		else if(string_iequals(node.name(), "noise_texture")) {
 			snode = new NoiseTextureNode();
 		}
-		else if(string_iequals(node.name(), "blend_texture")) {
-			BlendTextureNode *blend = new BlendTextureNode();
-			xml_read_enum(&blend->progression, BlendTextureNode::progression_enum, node, "progression");
-			xml_read_enum(&blend->axis, BlendTextureNode::axis_enum, node, "axis");
+		else if(string_iequals(node.name(), "gradient_texture")) {
+			GradientTextureNode *blend = new GradientTextureNode();
+			xml_read_enum(&blend->type, GradientTextureNode::type_enum, node, "type");
 			snode = blend;
 		}
-		else if(string_iequals(node.name(), "clouds_texture")) {
-			CloudsTextureNode *clouds = new CloudsTextureNode();
-			xml_read_bool(&clouds->hard, node, "hard");
-			xml_read_int(&clouds->depth, node, "depth");
-			xml_read_enum(&clouds->basis, CloudsTextureNode::basis_enum, node, "basis");
-			snode = clouds;
-		}
 		else if(string_iequals(node.name(), "voronoi_texture")) {
 			VoronoiTextureNode *voronoi = new VoronoiTextureNode();
-			xml_read_enum(&voronoi->distance_metric, VoronoiTextureNode::distance_metric_enum, node, "distance_metric");
 			xml_read_enum(&voronoi->coloring, VoronoiTextureNode::coloring_enum, node, "coloring");
 			snode = voronoi;
 		}
 		else if(string_iequals(node.name(), "musgrave_texture")) {
 			MusgraveTextureNode *musgrave = new MusgraveTextureNode();
 			xml_read_enum(&musgrave->type, MusgraveTextureNode::type_enum, node, "type");
-			xml_read_enum(&musgrave->basis, MusgraveTextureNode::basis_enum, node, "basis");
 			snode = musgrave;
 		}
-		else if(string_iequals(node.name(), "marble_texture")) {
-			MarbleTextureNode *marble = new MarbleTextureNode();
-			xml_read_enum(&marble->type, MarbleTextureNode::type_enum, node, "type");
-			xml_read_enum(&marble->wave, MarbleTextureNode::wave_enum, node, "wave");
-			xml_read_enum(&marble->basis, MarbleTextureNode::basis_enum, node, "basis");
-			xml_read_bool(&marble->hard, node, "hard");
-			xml_read_int(&marble->depth, node, "depth");
-			snode = marble;
-		}
 		else if(string_iequals(node.name(), "magic_texture")) {
 			MagicTextureNode *magic = new MagicTextureNode();
 			xml_read_int(&magic->depth, node, "depth");
 			snode = magic;
 		}
-		else if(string_iequals(node.name(), "stucci_texture")) {
-			StucciTextureNode *stucci = new StucciTextureNode();
-			xml_read_enum(&stucci->type, StucciTextureNode::type_enum, node, "type");
-			xml_read_enum(&stucci->basis, StucciTextureNode::basis_enum, node, "basis");
-			xml_read_bool(&stucci->hard, node, "hard");
-			snode = stucci;
-		}
-		else if(string_iequals(node.name(), "distorted_noise_texture")) {
-			DistortedNoiseTextureNode *dist = new DistortedNoiseTextureNode();
-			xml_read_enum(&dist->basis, DistortedNoiseTextureNode::basis_enum, node, "basis");
-			xml_read_enum(&dist->distortion_basis, DistortedNoiseTextureNode::basis_enum, node, "distortion_basis");
+		else if(string_iequals(node.name(), "noise_texture")) {
+			NoiseTextureNode *dist = new NoiseTextureNode();
 			snode = dist;
 		}
-		else if(string_iequals(node.name(), "wood_texture")) {
-			WoodTextureNode *wood = new WoodTextureNode();
-			xml_read_enum(&wood->type, WoodTextureNode::type_enum, node, "type");
-			xml_read_enum(&wood->wave, WoodTextureNode::wave_enum, node, "wave");
-			xml_read_enum(&wood->basis, WoodTextureNode::basis_enum, node, "basis");
-			xml_read_bool(&wood->hard, node, "hard");
+		else if(string_iequals(node.name(), "wave_texture")) {
+			WaveTextureNode *wood = new WaveTextureNode();
+			xml_read_enum(&wood->type, WaveTextureNode::type_enum, node, "type");
 			snode = wood;
 		}
 		else if(string_iequals(node.name(), "mapping")) {
@@ -477,11 +446,17 @@
 		else if(string_iequals(node.name(), "separate_rgb")) {
 			snode = new SeparateRGBNode();
 		}
+		else if(string_iequals(node.name(), "hsv")) {
+			snode = new HSVNode();
+		}
 		else if(string_iequals(node.name(), "attribute")) {
 			AttributeNode *attr = new AttributeNode();
 			xml_read_ustring(&attr->attribute, node, "attribute");
 			snode = attr;
 		}
+		else if(string_ieuals(node.name(), "camera")) {
+			snode = new CameraNode();
+		}
 		else if(string_iequals(node.name(), "fresnel")) {
 			snode = new FresnelNode();
 		}

Modified: branches/bmesh/blender/intern/cycles/blender/blender_shader.cpp
===================================================================
--- branches/bmesh/blender/intern/cycles/blender/blender_shader.cpp	2011-12-02 22:35:05 UTC (rev 42361)
+++ branches/bmesh/blender/intern/cycles/blender/blender_shader.cpp	2011-12-02 23:02:21 UTC (rev 42362)
@@ -127,11 +127,9 @@
 
 	switch(b_node.type()) {
 		/* not supported */
-		case BL::ShaderNode::type_CAMERA: break;
 		case BL::ShaderNode::type_CURVE_RGB: break;
 		case BL::ShaderNode::type_CURVE_VEC: break;
 		case BL::ShaderNode::type_GEOMETRY: break;
-		case BL::ShaderNode::type_HUE_SAT: break;
 		case BL::ShaderNode::type_INVERT: break;
 		case BL::ShaderNode::type_MATERIAL: break;
 		case BL::ShaderNode::type_MATERIAL_EXT: break;
@@ -156,6 +154,10 @@
 			node = value;
 			break;
 		}
+		case BL::ShaderNode::type_CAMERA: {
+			node = new CameraNode();
+			break;
+		}
 		case BL::ShaderNode::type_MIX_RGB: {
 			BL::ShaderNodeMixRGB b_mix_node(b_node);
 			MixNode *mix = new MixNode();
@@ -171,6 +173,10 @@
 			node = new CombineRGBNode();
 			break;
 		}
+		case BL::ShaderNode::type_HUE_SAT: {
+			node = new HSVNode();
+			break;
+		}
 		case BL::ShaderNode::type_RGBTOBW: {
 			node = new ConvertNode(SHADER_SOCKET_COLOR, SHADER_SOCKET_FLOAT);
 			break;

Modified: branches/bmesh/blender/intern/cycles/kernel/CMakeLists.txt
===================================================================
--- branches/bmesh/blender/intern/cycles/kernel/CMakeLists.txt	2011-12-02 22:35:05 UTC (rev 42361)
+++ branches/bmesh/blender/intern/cycles/kernel/CMakeLists.txt	2011-12-02 23:02:21 UTC (rev 42362)
@@ -54,12 +54,14 @@
 	svm/svm.h
 	svm/svm_attribute.h
 	svm/svm_bsdf.h
+	svm/svm_camera.h
 	svm/svm_closure.h
 	svm/svm_convert.h
 	svm/svm_displace.h
 	svm/svm_fresnel.h
 	svm/svm_geometry.h
 	svm/svm_gradient.h
+	svm/svm_hsv.h
 	svm/svm_image.h
 	svm/svm_light_path.h
 	svm/svm_magic.h

Modified: branches/bmesh/blender/intern/cycles/kernel/kernel_bvh.h
===================================================================
--- branches/bmesh/blender/intern/cycles/kernel/kernel_bvh.h	2011-12-02 22:35:05 UTC (rev 42361)
+++ branches/bmesh/blender/intern/cycles/kernel/kernel_bvh.h	2011-12-02 23:02:21 UTC (rev 42362)
@@ -33,6 +33,15 @@
 #define BVH_NODE_SIZE 4
 #define TRI_NODE_SIZE 3
 
+/* silly workaround for float extended precision that happens when compiling
+   without sse support on x86, it results in different results for float ops
+   that you would otherwise expect to compare correctly */
+#if !defined(__i386__) || defined(__SSE__)
+#define NO_EXTENDED_PRECISION
+#else
+#define NO_EXTENDED_PRECISION volatile
+#endif
+
 __device_inline float3 bvh_inverse_direction(float3 dir)
 {
 	/* avoid divide by zero (ooeps = exp2f(-80.0f)) */
@@ -94,8 +103,8 @@
 	float c0hiy = n0xy.w * idir.y - ood.y;
 	float c0loz = nz.x * idir.z - ood.z;
 	float c0hiz = nz.y * idir.z - ood.z;
-	float c0min = max4(min(c0lox, c0hix), min(c0loy, c0hiy), min(c0loz, c0hiz), 0.0f);
-	float c0max = min4(max(c0lox, c0hix), max(c0loy, c0hiy), max(c0loz, c0hiz), t);
+	NO_EXTENDED_PRECISION float c0min = max4(min(c0lox, c0hix), min(c0loy, c0hiy), min(c0loz, c0hiz), 0.0f);
+	NO_EXTENDED_PRECISION float c0max = min4(max(c0lox, c0hix), max(c0loy, c0hiy), max(c0loz, c0hiz), t);
 
 	float c1loz = nz.z * idir.z - ood.z;
 	float c1hiz = nz.w * idir.z - ood.z;
@@ -103,8 +112,8 @@

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list