[Bf-blender-cvs] [28d2f69] cycles_kernel_split: Cycles kernel split: Simplify code around loading split kernels
Sergey Sharybin
noreply at git.blender.org
Fri May 8 18:20:00 CEST 2015
Commit: 28d2f699514d702c3beaba87e0ab9abd60b82437
Author: Sergey Sharybin
Date: Fri May 8 21:18:24 2015 +0500
Branches: cycles_kernel_split
https://developer.blender.org/rB28d2f699514d702c3beaba87e0ab9abd60b82437
Cycles kernel split: Simplify code around loading split kernels
===================================================================
M intern/cycles/device/device_opencl.cpp
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 2ba696f..3327d95 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1782,82 +1782,35 @@ public:
common_custom_build_options += "-D__WORK_STEALING__ ";
#endif
- kernel_init_source = "#include \"kernel_DataInit.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &dataInit_program))
- return false;
-
- kernel_init_source = "#include \"kernel_SceneIntersect.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &sceneIntersect_program))
- return false;
-
- kernel_init_source = "#include \"kernel_LampEmission.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options + svm_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &lampEmission_program))
- return false;
-
- kernel_init_source = "#include \"kernel_QueueEnqueue.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &QueueEnqueue_program))
- return false;
-
- kernel_init_source = "#include \"kernel_Background_BufferUpdate.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options + compute_device_type_build_option + svm_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &background_BufferUpdate_program))
- return false;
-
- kernel_init_source = "#include \"kernel_ShaderEval.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options + svm_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &shaderEval_program))
- return false;
-
- kernel_init_source = "#include \"kernel_Holdout_Emission_Blurring_Pathtermination_AO.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options + compute_device_type_build_option;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &holdout_emission_blurring_termination_ao_program))
- return false;
-
- kernel_init_source = "#include \"kernel_DirectLighting.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options + compute_device_type_build_option + svm_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &directLighting_program))
- return false;
-
- kernel_init_source = "#include \"kernel_ShadowBlocked.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options + svm_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &shadowBlocked_program))
- return false;
-
- kernel_init_source = "#include \"kernel_NextIterationSetUp.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options + compute_device_type_build_option;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &nextIterationSetUp_program))
- return false;
-
- kernel_init_source = "#include \"kernel_SumAllRadiance.cl\" // " + kernel_md5 + "\n";
- custom_kernel_build_options = common_custom_build_options;
- 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(kernel_path, kernel_init_source, clbin, custom_kernel_build_options, &sumAllRadiance_program))
- return false;
+#define LOAD_KERNEL(program, name) \
+ do { \
+ kernel_init_source = "#include \"kernel_" name ".cl\" // " + \
+ kernel_md5 + "\n"; \
+ custom_kernel_build_options = common_custom_build_options; \
+ device_md5 = device_md5_hash(custom_kernel_build_options); \
+ clbin = string_printf("cycles_kernel_%s_%s_" name ".clbin", \
+ device_md5.c_str(), kernel_md5.c_str()); \
+ if(!load_split_kernel(kernel_path, kernel_init_source, clbin, \
+ custom_kernel_build_options, &program)) \
+ { \
+ return false; \
+ } \
+ } while(false)
+
+ LOAD_KERNEL(dataInit_program, "DataInit");
+ LOAD_KERNEL(sceneIntersect_program, "SceneIntersect");
+ LOAD_KERNEL(lampEmission_program, "LampEmission");
+ LOAD_KERNEL(QueueEnqueue_program, "QueueEnqueue");
+ LOAD_KERNEL(background_BufferUpdate_program, "Background_BufferUpdate");
+ LOAD_KERNEL(shaderEval_program, "ShaderEval");
+ LOAD_KERNEL(holdout_emission_blurring_termination_ao_program,
+ "Holdout_Emission_Blurring_Pathtermination_AO");
+ LOAD_KERNEL(directLighting_program, "DirectLighting");
+ LOAD_KERNEL(shadowBlocked_program, "ShadowBlocked");
+ LOAD_KERNEL(nextIterationSetUp_program, "NextIterationSetUp");
+ LOAD_KERNEL(sumAllRadiance_program, "SumAllRadiance");
+
+#undef LOAD_KERNEL
current_clos_max = max_closure;
More information about the Bf-blender-cvs
mailing list