Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--intern/cycles/device/device.h28
-rw-r--r--intern/cycles/device/device_opencl.cpp32
2 files changed, 30 insertions, 30 deletions
diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h
index 3c0fb880948..769fb3ccf9d 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 0db11e07c8b..5bef6a39728 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();
}
};