[Bf-blender-cvs] [fe0aa0f] cycles_kernel_split: Cycles kernel split : avoid explicit macro definition in svm.h

Kavitha Sampath noreply at git.blender.org
Wed May 6 09:54:19 CEST 2015


Commit: fe0aa0f0f50c6e38afa9c5d4d4818d39a535114f
Author: Kavitha Sampath
Date:   Wed May 6 11:17:03 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rBfe0aa0f0f50c6e38afa9c5d4d4818d39a535114f

Cycles kernel split : avoid explicit macro definition in svm.h

===================================================================

M	intern/cycles/device/device_opencl.cpp
M	intern/cycles/kernel/svm/svm.h

===================================================================

diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 8be44ca..754a3d3 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1883,17 +1883,11 @@ public:
 		/* Enable only the macros related to the scene */
 		for(int node_iter = NODE_END; node_iter <= NODE_UVMAP; node_iter++) {
 			if(node_iter == NODE_GEOMETRY_DUPLI || node_iter == NODE_UVMAP) { continue; }
-			if(node_iter != NODE_END)
-				svm_build_options += " ";
-			if(closure_nodes.find(node_iter) == closure_nodes.end()) {
-				svm_build_options += "-D" + get_node_type_as_string((NodeType)node_iter) + "=0";
-			}
-			else {
-				svm_build_options += "-D" + get_node_type_as_string((NodeType)node_iter) + "=1";
+			if(closure_nodes.find(node_iter) != closure_nodes.end()) {
+				svm_build_options += " -D" + get_node_type_as_string((NodeType)node_iter);
 			}
 		}
 		svm_build_options += " ";
-
 		/* Set max closure build option */
 #ifdef __MULTI_CLOSURE__
 		max_closure_build_option += string_printf("-DMAX_CLOSURE=%d ", clos_max);
diff --git a/intern/cycles/kernel/svm/svm.h b/intern/cycles/kernel/svm/svm.h
index d766330..4a8dd0b 100644
--- a/intern/cycles/kernel/svm/svm.h
+++ b/intern/cycles/kernel/svm/svm.h
@@ -182,82 +182,6 @@ CCL_NAMESPACE_END
 
 CCL_NAMESPACE_BEGIN
 
-#ifndef __SPLIT_KERNEL__
-/* If __SPLIT_KERNEL__ is not enabled, we enable all closures */
-#define __NODE_SHADER_JUMP__ 1
-#define __NODE_END__ 1
-#define __NODE_ATTR_BUMP_DX__ 1
-#define __NODE_ATTR_BUMP_DY__ 1
-#define __NODE_ATTR__ 1
-#define __NODE_BLACKBODY__ 1
-#define __NODE_BRIGHTCONTRAST__ 1
-#define __NODE_CAMERA__ 1
-#define __NODE_CLOSURE_AMBIENT_OCCLUSION__ 1
-#define __NODE_CLOSURE_BACKGROUND__ 1
-#define __NODE_CLOSURE_BSDF__ 1
-#define __NODE_CLOSURE_EMISSION__ 1
-#define __NODE_CLOSURE_HOLDOUT__ 1
-#define __NODE_CLOSURE_SET_NORMAL__ 1
-#define __NODE_CLOSURE_SET_WEIGHT__ 1
-#define __NODE_CLOSURE_VOLUME__ 1
-#define __NODE_CLOSURE_WEIGHT__ 1
-#define __NODE_COMBINE_HSV__ 1
-#define __NODE_COMBINE_VECTOR__ 1
-#define __NODE_CONVERT__ 1
-#define __NODE_EMISSION_WEIGHT__ 1
-#define __NODE_FRESNEL__ 1
-#define __NODE_GAMMA__ 1
-#define __NODE_GEOMETRY_BUMP_DX__ 1
-#define __NODE_GEOMETRY_BUMP_DY__ 1
-#define __NODE_GEOMETRY__ 1
-#define __NODE_HAIR_INFO__ 1
-#define __NODE_HSV__ 1
-#define __NODE_INVERT__ 1
-#define __NODE_JUMP_IF_ONE__ 1
-#define __NODE_JUMP_IF_ZERO__ 1
-#define __NODE_LAYER_WEIGHT__ 1
-#define __NODE_LIGHT_FALLOFF__ 1
-#define __NODE_LIGHT_PATH__ 1
-#define __NODE_MAPPING__ 1
-#define __NODE_MATH__ 1
-#define __NODE_MIN_MAX__ 1
-#define __NODE_MIX_CLOSURE__ 1
-#define __NODE_MIX__ 1
-#define __NODE_NORMAL_MAP__ 1
-#define __NODE_NORMAL__ 1
-#define __NODE_OBJECT_INFO__ 1
-#define __NODE_PARTICLE_INFO__ 1
-#define __NODE_RGB_CURVES__ 1
-#define __NODE_RGB_RAMP__ 1
-#define __NODE_SEPARATE_HSV__ 1
-#define __NODE_SEPARATE_VECTOR__ 1
-#define __NODE_SET_BUMP__ 1
-#define __NODE_SET_DISPLACEMENT__ 1
-#define __NODE_TANGENT__ 1
-#define __NODE_TEX_BRICK__ 1
-#define __NODE_TEX_CHECKER__ 1
-#define __NODE_TEX_COORD_BUMP_DX__ 1
-#define __NODE_TEX_COORD_BUMP_DY__ 1
-#define __NODE_TEX_COORD__ 1
-#define __NODE_TEX_ENVIRONMENT__ 1
-#define __NODE_TEX_GRADIENT__ 1
-#define __NODE_TEX_IMAGE_BOX__ 1
-#define __NODE_TEX_IMAGE__ 1
-#define __NODE_TEX_MAGIC__ 1
-#define __NODE_TEX_MUSGRAVE__ 1
-#define __NODE_TEX_NOISE__ 1
-#define __NODE_TEX_SKY__ 1
-#define __NODE_TEX_VORONOI__ 1
-#define __NODE_TEX_WAVE__ 1
-#define __NODE_VALUE_F__ 1
-#define __NODE_VALUE_V__ 1
-#define __NODE_VECTOR_CURVES__ 1
-#define __NODE_VECTOR_MATH__ 1
-#define __NODE_VECTOR_TRANSFORM__ 1
-#define __NODE_WAVELENGTH__ 1
-#define __NODE_WIREFRAME__ 1
-#endif
-
 /* Main Interpreter Loop */
 ccl_device_noinline void svm_eval_nodes(ccl_addr_space KernelGlobals *kg, ccl_addr_space ShaderData *sd, ShaderType type, int path_flag)
 {
@@ -268,7 +192,7 @@ ccl_device_noinline void svm_eval_nodes(ccl_addr_space KernelGlobals *kg, ccl_ad
 		uint4 node = read_node(kg, &offset);
 
 		switch(node.x) {
-#if __NODE_SHADER_JUMP__
+#if defined(__NODE_SHADER_JUMP__) || !defined(__SPLIT_KERNEL__)
 			case NODE_SHADER_JUMP: {
 				if(type == SHADER_TYPE_SURFACE) offset = node.y;
 				else if(type == SHADER_TYPE_VOLUME) offset = node.z;
@@ -277,168 +201,168 @@ ccl_device_noinline void svm_eval_nodes(ccl_addr_space KernelGlobals *kg, ccl_ad
 				break;
 			}
 #endif
-#if __NODE_CLOSURE_BSDF__
+#if defined(__NODE_CLOSURE_BSDF__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_BSDF:
 				svm_node_closure_bsdf(kg, sd, stack, node, path_flag, &offset);
 				break;
 #endif
-#if __NODE_CLOSURE_EMISSION__
+#if defined(__NODE_CLOSURE_EMISSION__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_EMISSION:
 				svm_node_closure_emission(sd, stack, node);
 				break;
 #endif
-#if __NODE_CLOSURE_BACKGROUND__
+#if defined(__NODE_CLOSURE_BACKGROUND__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_BACKGROUND:
 				svm_node_closure_background(sd, stack, node);
 				break;
 #endif
-#if __NODE_CLOSURE_HOLDOUT__
+#if defined(__NODE_CLOSURE_HOLDOUT__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_HOLDOUT:
 				svm_node_closure_holdout(sd, stack, node);
 				break;
 #endif
-#if __NODE_CLOSURE_AMBIENT_OCCLUSION__
+#if defined(__NODE_CLOSURE_AMBIENT_OCCLUSION__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_AMBIENT_OCCLUSION:
 				svm_node_closure_ambient_occlusion(sd, stack, node);
 				break;
 #endif
-#if __NODE_CLOSURE_VOLUME__
+#if defined(__NODE_CLOSURE_VOLUME__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_VOLUME:
 				svm_node_closure_volume(kg, sd, stack, node, path_flag);
 				break;
 #endif
-#if __NODE_CLOSURE_SET_WEIGHT__
+#if defined(__NODE_CLOSURE_SET_WEIGHT__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_SET_WEIGHT:
 				svm_node_closure_set_weight(sd, node.y, node.z, node.w);
 				break;
 #endif
-#if __NODE_CLOSURE_WEIGHT__
+#if defined(__NODE_CLOSURE_WEIGHT__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CLOSURE_WEIGHT:
 				svm_node_closure_weight(sd, stack, node.y);
 				break;
 #endif
-#if __NODE_EMISSION_WEIGHT__
+#if defined(__NODE_EMISSION_WEIGHT__) || !defined(__SPLIT_KERNEL__)
 			case NODE_EMISSION_WEIGHT:
 				svm_node_emission_weight(kg, sd, stack, node);
 				break;
 #endif
-#if __NODE_MIX_CLOSURE__
+#if defined(__NODE_MIX_CLOSURE__) || !defined(__SPLIT_KERNEL__)
 			case NODE_MIX_CLOSURE:
 				svm_node_mix_closure(sd, stack, node);
 				break;
 #endif
-#if __NODE_JUMP_IF_ZERO__
+#if defined(__NODE_JUMP_IF_ZERO__) || !defined(__SPLIT_KERNEL__)
 			case NODE_JUMP_IF_ZERO:
 				if(stack_load_float(stack, node.z) == 0.0f)
 					offset += node.y;
 				break;
 #endif
-#if __NODE_JUMP_IF_ONE__
+#if defined(__NODE_JUMP_IF_ONE__) || !defined(__SPLIT_KERNEL__)
 			case NODE_JUMP_IF_ONE:
 				if(stack_load_float(stack, node.z) == 1.0f)
 					offset += node.y;
 				break;
 #endif
 #ifdef __TEXTURES__
-#if __NODE_TEX_IMAGE__
+#if defined(__NODE_TEX_IMAGE__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_IMAGE:
 				svm_node_tex_image(kg, sd, stack, node);
 				break;
 #endif
-#if __NODE_TEX_IMAGE_BOX__
+#if defined(__NODE_TEX_IMAGE_BOX__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_IMAGE_BOX:
 				svm_node_tex_image_box(kg, sd, stack, node);
 				break;
 #endif
-#if __NODE_TEX_ENVIRONMENT__
+#if defined(__NODE_TEX_ENVIRONMENT__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_ENVIRONMENT:
 				svm_node_tex_environment(kg, sd, stack, node);
 				break;
 #endif
-#if __NODE_TEX_SKY__
+#if defined(__NODE_TEX_SKY__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_SKY:
 				svm_node_tex_sky(kg, sd, stack, node, &offset);
 				break;
 #endif
-#if __NODE_TEX_GRADIENT__
+#if defined(__NODE_TEX_GRADIENT__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_GRADIENT:
 				svm_node_tex_gradient(sd, stack, node);
 				break;
 #endif
-#if __NODE_TEX_NOISE__
+#if defined(__NODE_TEX_NOISE__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_NOISE:
 				svm_node_tex_noise(kg, sd, stack, node, &offset);
 				break;
 #endif
-#if __NODE_TEX_VORONOI__
+#if defined(__NODE_TEX_VORONOI__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_VORONOI:
 				svm_node_tex_voronoi(kg, sd, stack, node, &offset);
 				break;
 #endif
-#if __NODE_TEX_MUSGRAVE__
+#if defined(__NODE_TEX_MUSGRAVE__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_MUSGRAVE:
 				svm_node_tex_musgrave(kg, sd, stack, node, &offset);
 				break;
 #endif
-#if __NODE_TEX_WAVE__
+#if defined(__NODE_TEX_WAVE__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_WAVE:
 				svm_node_tex_wave(kg, sd, stack, node, &offset);
 				break;
 #endif
-#if __NODE_TEX_MAGIC__
+#if defined(__NODE_TEX_MAGIC__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_MAGIC:
 				svm_node_tex_magic(kg, sd, stack, node, &offset);
 				break;
 #endif
-#if __NODE_TEX_CHECKER__
+#if defined(__NODE_TEX_CHECKER__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_CHECKER:
 				svm_node_tex_checker(kg, sd, stack, node);
 				break;
 #endif
-#if __NODE_TEX_BRICK__
+#if defined(__NODE_TEX_BRICK__) || !defined(__SPLIT_KERNEL__)
 			case NODE_TEX_BRICK:
 				svm_node_tex_brick(kg, sd, stack, node, &offset);
 				break;
 #endif
 #endif
-#if __NODE_CAMERA__
+#if defined(__NODE_CAMERA__) || !defined(__SPLIT_KERNEL__)
 			case NODE_CAMERA:
 				svm_node_camera(kg, sd, stack, node.y, node.z, node.w);
 				break;
 #endif
-#if __NODE_GEOMETRY__
+#if defined(__NODE_GEOMETRY__) || !defined(__SPLIT_KERNEL__)
 			case NODE_GEOMETRY:
 				svm_node_geometry(kg, sd, stack, node.y, node.z);
 				break;
 #endif
 #ifdef __EXTRA_NODES__
-#if __NODE_GEOMETRY_BUMP_DX__
+#if defined(__NODE_GEOMETRY_BUMP_DX__) || !defined(__SPLIT_KERNEL__)
 			case NODE_GEOMETRY_BUMP_DX:
 				svm_node_geometry_bump_dx(kg, sd, stack, node.y, node.z);
 				break;
 #endif
-#if __NODE_GEOMETRY_BUMP_DY__
+#if defined(__NODE_GEOMETRY_BUMP_DY__) || !defined(__SPLIT_KERNEL__)
 			case NODE_GEOMETRY_BUMP_DY:
 				svm_node_geometry_bump_dy(kg, sd, stack, node.y, node.z);
 				break;
 #endif
-#if __NODE_LIGHT_PATH__
+#if defined(__NODE_LIGHT_PATH__) || !defined(__SPLIT_KERNEL__)
 			case NODE_LIGHT_PATH:
 				svm_node_light_path(sd, stack, node.y, node.z, path_flag);
 				break;
 #endif


@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list