[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