[Bf-blender-cvs] [a106da7] master: Cycles: Move build options constructions to DeviceRequestedFeatures

Sergey Sharybin noreply at git.blender.org
Sat Nov 21 19:09:31 CET 2015


Commit: a106da7f1dd92b7fc8559d7f83509e7f21758615
Author: Sergey Sharybin
Date:   Sat Nov 21 21:42:31 2015 +0500
Branches: master
https://developer.blender.org/rBa106da7f1dd92b7fc8559d7f83509e7f21758615

Cycles: Move build options constructions to DeviceRequestedFeatures

This way it's easier to re-use requested features logic across multiple
device implementations.

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

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

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

diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h
index 3c0fb88..769fb3c 100644
--- a/intern/cycles/device/device.h
+++ b/intern/cycles/device/device.h
@@ -125,6 +125,34 @@ public:
 		         use_baking == requested_features.use_baking);
 	}
 
+	/* Convert the requested features structure to a build options,
+	 * which could then be passed to compilers.
+	 */
+	string get_build_options(void) const
+	{
+		string build_options = "";
+		if(experimental) {
+			build_options += "-D__KERNEL_EXPERIMENTAL__ ";
+		}
+		build_options += "-D__NODES_MAX_GROUP__=" +
+			string_printf("%d", max_nodes_group);
+		build_options += " -D__NODES_FEATURES__=" +
+			string_printf("%d", nodes_features);
+		build_options += string_printf(" -D__MAX_CLOSURE__=%d", max_closure);
+		if(!use_hair) {
+			build_options += " -D__NO_HAIR__";
+		}
+		if(!use_object_motion) {
+			build_options += " -D__NO_OBJECT_MOTION__";
+		}
+		if(!use_camera_motion) {
+			build_options += " -D__NO_CAMERA_MOTION__";
+		}
+		if(!use_baking) {
+			build_options += " -D__NO_BAKING__";
+		}
+		return build_options;
+	}
 };
 
 std::ostream& operator <<(std::ostream &os,
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 0db11e0..5bef6a3 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1550,34 +1550,6 @@ protected:
 		}
 	}
 
-	string build_options_from_requested_features(
-	        const DeviceRequestedFeatures& requested_features)
-	{
-		string build_options = "";
-		if(requested_features.experimental) {
-			build_options += "-D__KERNEL_EXPERIMENTAL__ ";
-		}
-		build_options += "-D__NODES_MAX_GROUP__=" +
-			string_printf("%d", requested_features.max_nodes_group);
-		build_options += " -D__NODES_FEATURES__=" +
-			string_printf("%d", requested_features.nodes_features);
-		build_options += string_printf(" -D__MAX_CLOSURE__=%d",
-		                               requested_features.max_closure);
-		if(!requested_features.use_hair) {
-			build_options += " -D__NO_HAIR__";
-		}
-		if(!requested_features.use_object_motion) {
-			build_options += " -D__NO_OBJECT_MOTION__";
-		}
-		if(!requested_features.use_camera_motion) {
-			build_options += " -D__NO_CAMERA_MOTION__";
-		}
-		if(!requested_features.use_baking) {
-			build_options += " -D__NO_BAKING__";
-		}
-		return build_options;
-	}
-
 	/* ** Those guys are for workign around some compiler-specific bugs ** */
 
 	virtual cl_program load_cached_kernel(
@@ -2312,7 +2284,7 @@ public:
 #ifdef __WORK_STEALING__
 		build_options += " -D__WORK_STEALING__";
 #endif
-		build_options += build_options_from_requested_features(requested_features);
+		build_options += requested_features.get_build_options();
 
 		/* Set compute device build option. */
 		cl_device_type device_type;
@@ -3585,7 +3557,7 @@ protected:
 	string build_options_for_base_program(
 	        const DeviceRequestedFeatures& requested_features)
 	{
-		return build_options_from_requested_features(requested_features);
+		return requested_features.get_build_options();
 	}
 };




More information about the Bf-blender-cvs mailing list