[Bf-blender-cvs] [25f1b22] cycles_kernel_split: Move work_stealing macro to device_opencl.cpp

varunsundar08 noreply at git.blender.org
Thu Apr 30 23:25:31 CEST 2015


Commit: 25f1b220e25344c89e9fd4f9879ae01e5777c218
Author: varunsundar08
Date:   Fri May 1 00:00:52 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rB25f1b220e25344c89e9fd4f9879ae01e5777c218

Move work_stealing macro to device_opencl.cpp

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

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

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

diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 66b0156..7043610 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -41,6 +41,10 @@ CCL_NAMESPACE_BEGIN
 #define CL_MEM_PTR(p) ((cl_mem)(uintptr_t)(p))
 
 /* Macro declarations used with split kernel */
+
+/* Macro to enable/disable work-stealing */
+#define __WORK_STEALING__
+
 #define SPLIT_KERNEL_LOCAL_SIZE_X 64
 #define SPLIT_KERNEL_LOCAL_SIZE_Y 1
 
@@ -2049,6 +2053,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_DataInit.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_DataInit.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&dataInit_program, kernel_path, "dataInit", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2056,6 +2063,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_SceneIntersect.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_SceneIntersect.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&sceneIntersect_program, kernel_path, "SceneIntersect", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2063,6 +2073,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_LampEmission.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option + svm_build_options;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_LampEmission.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&lampEmission_program, kernel_path, "LampEmission", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2070,6 +2083,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_QueueEnqueue.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_QueueEnqueue.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&QueueEnqueue_program, kernel_path, "Queue", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2077,6 +2093,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_Background_BufferUpdate.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option + compute_device_type_build_option + svm_build_options;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_Background_BufferUpdate.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&background_BufferUpdate_program, kernel_path, "Background", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2084,6 +2103,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_ShaderEval.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option + svm_build_options;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_ShaderEval.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&shaderEval_program, kernel_path, "shaderEval", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2091,6 +2113,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_Holdout_Emission_Blurring_Pathtermination_AO.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option + compute_device_type_build_option;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_Holdout_Emission_Blurring_Pathtermination_AO.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&holdout_emission_blurring_termination_ao_program, kernel_path, "ao", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2098,6 +2123,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_DirectLighting.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option + compute_device_type_build_option + svm_build_options;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_DirectLighting.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&directLighting_program, kernel_path, "directLighting", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2105,6 +2133,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_ShadowBlocked.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option + svm_build_options;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_ShadowBlocked.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&shadowBlocked_program, kernel_path, "shadow", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2112,6 +2143,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_NextIterationSetUp.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option + compute_device_type_build_option;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_NextIterationSetUp.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&nextIterationSetUp_program, kernel_path, "nextIter", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
@@ -2119,6 +2153,9 @@ public:
 
 		kernel_init_source = "#include \"kernel_SumAllRadiance.cl\" // " + kernel_md5 + "\n";
 		custom_kernel_build_options = "-D__SPLIT_KERNEL__ " + max_closure_build_option;
+#ifdef __WORK_STEALING__
+		custom_kernel_build_options += "-D__WORK_STEALING__ ";
+#endif
 		device_md5 = device_md5_hash(custom_kernel_build_options);
 		clbin = string_printf("cycles_kernel_%s_%s_SumAllRadiance.clbin", device_md5.c_str(), kernel_md5.c_str());
 		if(!load_split_kernel(&sumAllRadiance_program, kernel_path, "sumAll", device_md5, kernel_init_source, clbin, custom_kernel_build_options))
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index f6dc047..fd9819d 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -1043,9 +1043,6 @@ typedef struct DebugData {
 /* Value marking queue's empty slot */
 #define QUEUE_EMPTY_SLOT -1
 
-/* Macro to enable/disable work-stealing */
-#define __WORK_STEALING__
-
 /*
 * Queue 1 - Active rays
 * Queue 2 - Background queue




More information about the Bf-blender-cvs mailing list