[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