[Bf-blender-cvs] [d149787] cycles_kernel_split: Cycles kernel split : Use macro to set args for megakernel
varunsundar08
noreply at git.blender.org
Wed May 6 13:07:22 CEST 2015
Commit: d149787cd3e3be89084ec2dd2bcf80cd388efbf8
Author: varunsundar08
Date: Wed May 6 16:19:46 2015 +0530
Branches: cycles_kernel_split
https://developer.blender.org/rBd149787cd3e3be89084ec2dd2bcf80cd388efbf8
Cycles kernel split : Use macro to set args for megakernel
===================================================================
M intern/cycles/device/device_opencl.cpp
===================================================================
diff --git a/intern/cycles/device/device_opencl.cpp b/intern/cycles/device/device_opencl.cpp
index 3536bbd..a4f231e 100644
--- a/intern/cycles/device/device_opencl.cpp
+++ b/intern/cycles/device/device_opencl.cpp
@@ -1219,22 +1219,26 @@ public:
cl_int d_sample = sample;
cl_uint narg = 0;
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_data), (void*)&d_data));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_buffer), (void*)&d_buffer));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_rng_state), (void*)&d_rng_state));
+ /* TODO : Make the kernel launch similar to Cuda */
+#define KERNEL_APPEND_ARG(kernel_name, arg) \
+ opencl_assert(clSetKernelArg(kernel_name, narg++, sizeof(arg), (void*)&arg))
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_data);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_buffer);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_rng_state);
#define KERNEL_TEX(type, ttype, name) \
set_kernel_arg_mem(ckPathTraceKernel, &narg, #name);
#include "kernel_textures.h"
#undef KERNEL_TEX
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_sample), (void*)&d_sample));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_x), (void*)&d_x));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_y), (void*)&d_y));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_w), (void*)&d_w));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_h), (void*)&d_h));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_offset), (void*)&d_offset));
- opencl_assert(clSetKernelArg(ckPathTraceKernel, narg++, sizeof(d_stride), (void*)&d_stride));
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_sample);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_x);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_y);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_w);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_h);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_offset);
+ KERNEL_APPEND_ARG(ckPathTraceKernel, d_stride);
+#undef KERNEL_APPEND_ARG
enqueue_kernel(ckPathTraceKernel, d_w, d_h);
}
More information about the Bf-blender-cvs
mailing list