[Bf-blender-cvs] [4f9a350] cycles_kernel_split: Refactor : Uncomment shader, filmconvert and bake kernels
varunsundar08
noreply at git.blender.org
Wed Apr 15 17:37:04 CEST 2015
Commit: 4f9a3504d3284e6f14e05b0870a08181d879f8dc
Author: varunsundar08
Date: Thu Apr 9 17:14:04 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rB4f9a3504d3284e6f14e05b0870a08181d879f8dc
Refactor : Uncomment shader, filmconvert and bake kernels
===================================================================
M intern/cycles/device/device_opencl.cpp
M intern/cycles/kernel/kernel.cl
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 983a7be..104f6f0 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -125,7 +125,7 @@ static bool opencl_kernel_use_advanced_shading(const string& platform)
static string opencl_kernel_build_options(const string& platform, const string *debug_src = NULL)
{
#ifdef __SPLIT_KERNEL__
- string build_options = " -cl-fast-relaxed-math -D__SPLIT_KERNEL__=1 ";
+ string build_options = " -cl-fast-relaxed-math ";
build_options.append(opt);
build_options.append(compute_device_type_build_option);
#else
@@ -580,13 +580,13 @@ public:
#else
cl_kernel ckPathTraceKernel;
- cl_kernel ckFilmConvertByteKernel;
- cl_kernel ckFilmConvertHalfFloatKernel;
+#endif
+
cl_kernel ckShaderKernel;
cl_kernel ckBakeKernel;
-
+ cl_kernel ckFilmConvertByteKernel;
+ cl_kernel ckFilmConvertHalfFloatKernel;
cl_program cpProgram;
-#endif
typedef map<string, device_vector<uchar>*> ConstMemMap;
typedef map<string, device_ptr> MemMap;
@@ -845,13 +845,13 @@ public:
#else
ckPathTraceKernel = NULL;
- ckFilmConvertByteKernel = NULL;
- ckFilmConvertHalfFloatKernel = NULL;
+#endif
+
ckShaderKernel = NULL;
ckBakeKernel = NULL;
-
+ ckFilmConvertByteKernel = NULL;
+ ckFilmConvertHalfFloatKernel = NULL;
cpProgram = NULL;
-#endif
/* setup platform */
cl_uint num_platforms;
@@ -1642,73 +1642,79 @@ public:
kernel_init_source = "#include \"kernel_DataInit.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash("");
clbin = string_printf("cycles_kernel_%s_%s_DataInit.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&dataInit_program, kernel_path, "dataInit", device_md5, kernel_init_source, clbin, ""))
+ if(!load_split_kernel_SPLIT_KERNEL(&dataInit_program, kernel_path, "dataInit", device_md5, kernel_init_source, clbin, " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_SceneIntersect.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash("");
clbin = string_printf("cycles_kernel_%s_%s_SceneIntersect.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&sceneIntersect_program, kernel_path, "SceneIntersect", device_md5, kernel_init_source, clbin, ""))
+ if(!load_split_kernel_SPLIT_KERNEL(&sceneIntersect_program, kernel_path, "SceneIntersect", device_md5, kernel_init_source, clbin, " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_LampEmission.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash(svm_build_options);
clbin = string_printf("cycles_kernel_%s_%s_LampEmission.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&lampEmission_program, kernel_path, "LampEmission", device_md5, kernel_init_source, clbin, svm_build_options))
+ if(!load_split_kernel_SPLIT_KERNEL(&lampEmission_program, kernel_path, "LampEmission", device_md5, kernel_init_source, clbin, svm_build_options + " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_QueueEnqueue.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash("");
clbin = string_printf("cycles_kernel_%s_%s_QueueEnqueue.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&QueueEnqueue_program, kernel_path, "Queue", device_md5, kernel_init_source, clbin, ""))
+ if(!load_split_kernel_SPLIT_KERNEL(&QueueEnqueue_program, kernel_path, "Queue", device_md5, kernel_init_source, clbin, " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_Background_BufferUpdate.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash(svm_build_options);
clbin = string_printf("cycles_kernel_%s_%s_Background_BufferUpdate.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&background_BufferUpdate_program, kernel_path, "Background", device_md5, kernel_init_source, clbin, svm_build_options))
+ if(!load_split_kernel_SPLIT_KERNEL(&background_BufferUpdate_program, kernel_path, "Background", device_md5, kernel_init_source, clbin, svm_build_options + " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_ShaderEval.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash(svm_build_options);
clbin = string_printf("cycles_kernel_%s_%s_ShaderEval.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&shaderEval_program, kernel_path, "shaderEval", device_md5, kernel_init_source, clbin, svm_build_options))
+ if(!load_split_kernel_SPLIT_KERNEL(&shaderEval_program, kernel_path, "shaderEval", device_md5, kernel_init_source, clbin, svm_build_options + " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_Holdout_Emission_Blurring_Pathtermination_AO.cl\" // "+ kernel_md5 + "\n";
device_md5 = device_md5_hash("");
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_SPLIT_KERNEL(&holdout_emission_blurring_termination_ao_program, kernel_path, "ao", device_md5, kernel_init_source, clbin, ""))
+ if(!load_split_kernel_SPLIT_KERNEL(&holdout_emission_blurring_termination_ao_program, kernel_path, "ao", device_md5, kernel_init_source, clbin, " -D__SPLIT_KERNEL__ "))
return false;
#ifdef __SUBSURFACE__
kernel_init_source = "#include \"kernel_Subsurface.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash("");
clbin = string_printf("cycles_kernel_%s_%s_Subsurface.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&subsurface_program, kernel_path, kernel_md5, device_md5, kernel_init_source, clbin, ""))
+ if(!load_split_kernel_SPLIT_KERNEL(&subsurface_program, kernel_path, kernel_md5, device_md5, kernel_init_source, clbin, " -D__SPLIT_KERNEL__ "))
return false;
#endif
kernel_init_source = "#include \"kernel_DirectLighting.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash(svm_build_options);
clbin = string_printf("cycles_kernel_%s_%s_DirectLighting.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&directLighting_program, kernel_path, "directLighting", device_md5, kernel_init_source, clbin, svm_build_options))
+ if(!load_split_kernel_SPLIT_KERNEL(&directLighting_program, kernel_path, "directLighting", device_md5, kernel_init_source, clbin, svm_build_options + " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_ShadowBlocked.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash(svm_build_options);
clbin = string_printf("cycles_kernel_%s_%s_ShadowBlocked.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&shadowBlocked_program, kernel_path, "shadow", device_md5, kernel_init_source, clbin, svm_build_options))
+ if(!load_split_kernel_SPLIT_KERNEL(&shadowBlocked_program, kernel_path, "shadow", device_md5, kernel_init_source, clbin, svm_build_options + " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_NextIterationSetUp.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash("");
clbin = string_printf("cycles_kernel_%s_%s_NextIterationSetUp.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&nextIterationSetUp_program, kernel_path, "nextIter", device_md5, kernel_init_source, clbin, ""))
+ if(!load_split_kernel_SPLIT_KERNEL(&nextIterationSetUp_program, kernel_path, "nextIter", device_md5, kernel_init_source, clbin, " -D__SPLIT_KERNEL__ "))
return false;
kernel_init_source = "#include \"kernel_SumAllRadiance.cl\" // " + kernel_md5 + "\n";
device_md5 = device_md5_hash("");
clbin = string_printf("cycles_kernel_%s_%s_SumAllRadiance.clbin", device_md5.c_str(), kernel_md5.c_str());
- if(!load_split_kernel_SPLIT_KERNEL(&sumAllRadiance_program, kernel_path, "sumAll", device_md5, kernel_init_source, clbin, ""))
+ if(!load_split_kernel_SPLIT_KERNEL(&sumAllRadiance_program, kernel_path, "sumAll", device_md5, kernel_init_source, clbin, " -D__SPLIT_KERNEL__ "))
+ return false;
+
+ kernel_init_source = "#include \"kernel.cl\" // " + kernel_md5 + "\n";
+ device_md5 = device_md5_hash("");
+ clbin = string_printf("cycles_kernel_%s_%s.clbin", device_md5.c_str(), kernel_md5.c_str());
+ if(!load_split_kernel_SPLIT_KERNEL(&cpProgram, kernel_path, "", device_md5, kernel_init_source, clbin, ""))
return false;
#else
@@ -1812,23 +1818,23 @@ public:
ckPathTraceKernel = clCreateKernel(cpProgram, "kernel_ocl_path_trace", &ciErr);
if(opencl_error(ciErr))
return false;
+#endif
- ckFilmConvertByteKernel = clCreateKernel(cpProgram, "kernel_ocl_convert_to_byte", &ciErr);
+ ckShaderKernel = clCreateKernel(cpProgram, "kernel_ocl_shader", &ciErr);
if(opencl_error(ciErr))
return false;
- ckFilmConvertHalfFloatKernel = clCreateKernel(cpProgram, "kernel_ocl_convert_to_half_float", &ciErr);
- if(opencl_error(ciErr))
+ ckBakeKernel = clCreateKernel(cpProgram, "kernel_ocl_bake", &ciErr);
+ if (opencl_error(ciErr))
return false;
- ckShaderKernel = clCreateKernel(cpProgram, "kernel_ocl_shader", &ciErr);
- if(opencl_error(ciErr))
+ ckFilmConvertByteKernel = clCreateKernel(cpProgram, "kernel_ocl_convert_to_byte", &ciErr);
+ if (opencl_error(ciErr))
return false;
- ckBakeKernel = clCreateKernel(cpProgram, "kernel_ocl_bake", &ciErr);
- if(opencl_error(ciErr))
+ ckFilmConvertHalfFloatKernel = clCreateKernel(cpProgram, "kernel_ocl_convert_to_half_float", &ciErr);
+ if (opencl_error(ciErr))
return false;
-#endif
return true;
}
@@ -2251,13 +2257,22 @@ public:
#else
if(ckPathTraceKernel)
clReleaseKernel(ckPathTraceKernel);
- if(ckFilmConvertByteKernel)
+#endif
+
+ if (ckBakeKernel)
+ clReleaseKernel(ckBakeKernel);
+
+ if (ckShaderKernel)
+ clReleaseKernel(ckShaderKernel);
+
+ if (ckFilmConvertByteKernel)
clReleaseKernel(ckFilmConvertByteKernel);
- if(ckFilmConvertHalfFloatKernel)
+
+ if (ckFilmConvertHa
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list