Commit: ebf61d9489cc5accfeadd10826afb5ce33312604
Author: Sergey Sharybin
Date: Fri May 8 21:27:47 2015 +0500
Branches: cycles_kernel_split
https://developer.blender.org/rBebf61d9489cc5accfeadd10826afb5ce33312604
Cycles kernel split: Simplify code around kernel function loading
===================================================================
M intern/cycles/device/device_opencl.cpp
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp
b/intern/cycles/device/device_opencl.cpp
index 3327d95..88c2fbc 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1812,52 +1812,34 @@ public:
#undef LOAD_KERNEL
- current_clos_max = max_closure;
-
- /* find kernels */
- ckPathTraceKernel_DataInit = clCreateKernel(dataInit_program,
"kernel_ocl_path_trace_data_initialization", &ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_SceneIntersect =
clCreateKernel(sceneIntersect_program, "kernel_ocl_path_trace_SceneIntersect",
&ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_LampEmission =
clCreateKernel(lampEmission_program, "kernel_ocl_path_trace_LampEmission",
&ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_QueueEnqueue =
clCreateKernel(QueueEnqueue_program, "kernel_ocl_path_trace_QueueEnqueue",
&ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_BG_BufferUpdate =
clCreateKernel(background_BufferUpdate_program,
"kernel_ocl_path_trace_Background_BufferUpdate", &ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_Shader_Lighting =
clCreateKernel(shaderEval_program, "kernel_ocl_path_trace_ShaderEvaluation",
&ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_Holdout_Emission_Blurring_Pathtermination_AO
= clCreateKernel(holdout_emission_blurring_termination_ao_program,
"kernel_ocl_path_trace_holdout_emission_blurring_pathtermination_AO", &ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_DirectLighting =
clCreateKernel(directLighting_program, "kernel_ocl_path_trace_DirectLighting",
&ciErr);
- if(opencl_error(ciErr))
- return false;
-
- ckPathTraceKernel_ShadowBlocked_DirectLighting =
clCreateKernel(shadowBlocked_program,
"kernel_ocl_path_trace_ShadowBlocked_DirectLighting", &ciErr);
- if(opencl_error(ciErr))
- return false;
+#define GLUE(a, b) a ## b
+#define FIND_KERNEL(kernel, program, function) \
+ do { \
+ GLUE(ckPathTraceKernel_, kernel) = \
+ clCreateKernel(GLUE(program, _program), \
+ "kernel_ocl_path_trace_" function,
&ciErr); \
+ if(opencl_error(ciErr)) { \
+ return false; \
+ } \
+ } while(false)
- ckPathTraceKernel_SetUpNextIteration =
clCreateKernel(nextIterationSetUp_program,
"kernel_ocl_path_trace_SetupNextIteration", &ciErr);
- if(opencl_error(ciErr))
- return false;
+ FIND_KERNEL(DataInit, dataInit, "data_initialization");
+ FIND_KERNEL(SceneIntersect, sceneIntersect, "SceneIntersect");
+ FIND_KERNEL(LampEmission, lampEmission, "LampEmission");
+ FIND_KERNEL(QueueEnqueue, QueueEnqueue, "QueueEnqueue");
+ FIND_KERNEL(BG_BufferUpdate, background_BufferUpdate,
"Background_BufferUpdate");
+ FIND_KERNEL(Shader_Lighting, shaderEval, "ShaderEvaluation");
+ FIND_KERNEL(Holdout_Emission_Blurring_Pathtermination_AO,
+ holdout_emission_blurring_termination_ao,
+ "holdout_emission_blurring_pathtermination_AO");
+ FIND_KERNEL(DirectLighting, directLighting, "DirectLighting");
+ FIND_KERNEL(ShadowBlocked_DirectLighting, shadowBlocked,
"ShadowBlocked_DirectLighting");
+ FIND_KERNEL(SetUpNextIteration, nextIterationSetUp,
"SetupNextIteration");
+ FIND_KERNEL(SumAllRadiance, sumAllRadiance, "SumAllRadiance");
+#undef FIND_KERNEL
+#undef GLUE
- ckPathTraceKernel_SumAllRadiance =
clCreateKernel(sumAllRadiance_program, "kernel_ocl_path_trace_SumAllRadiance",
&ciErr);
- if(opencl_error(ciErr))
- return false;
+ current_clos_max = max_closure;
return true;
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs