summaryrefslogtreecommitdiff
path: root/backend/src
diff options
context:
space:
mode:
authorJunyan He <junyan.he@intel.com>2016-04-11 22:15:15 +0800
committerJunyan He <junyan.he@intel.com>2016-04-11 22:15:15 +0800
commitd8fd1f4bbdbcc0bc2cd6bf20b29518eb74d3f511 (patch)
tree26b59ac0fc422aa54ca28b560fc7f0412902ebb9 /backend/src
parent8096dfae2edf9a9a784ba7aa26bcb85872e05bdd (diff)
kernel
Diffstat (limited to 'backend/src')
-rw-r--r--backend/src/driver/cl_gen_kernel.cpp31
1 files changed, 20 insertions, 11 deletions
diff --git a/backend/src/driver/cl_gen_kernel.cpp b/backend/src/driver/cl_gen_kernel.cpp
index cfde43e5..c9ad3a39 100644
--- a/backend/src/driver/cl_gen_kernel.cpp
+++ b/backend/src/driver/cl_gen_kernel.cpp
@@ -79,19 +79,12 @@ static size_t genGetKernelMaxWorkGroupSize(cl_kernel kernel, Kernel* ker, const
}
extern "C"
-cl_int GenCreateKernel(cl_kernel kernel, const cl_device_id device)
+cl_int GenGetWorkgroupInfo(cl_kernel kernel, const cl_device_id device, cl_kernel_workgroup_info wgInfo)
{
- GBE_ASSERT(getGenKernelPrivate(kernel, device) == NULL);
-
- Program* p = reinterpret_cast<Program*>(getGenProgramPrivate(kernel->program, device));
- if (p == NULL)
- return CL_INVALID_PROGRAM;
-
- Kernel* ker = p->getKernel(kernel->name);
+ Kernel* ker = reinterpret_cast<Kernel*>(getGenKernelPrivate(kernel, device));
if (ker == NULL)
- return CL_INVALID_KERNEL_NAME;
+ return CL_INVALID_VALUE;
- cl_kernel_workgroup_info wgInfo = &kernel->wg_info[findIndexByDevice(kernel->program->ctx, device)];
ker->getCompileWorkGroupSize(wgInfo->compile_wg_sz);
wgInfo->local_mem_sz = ker->getSLMSize();
wgInfo->private_mem_sz = ker->getStackSize();
@@ -108,6 +101,22 @@ cl_int GenCreateKernel(cl_kernel kernel, const cl_device_id device)
memcpy(wgInfo->global_work_sz, device->max_3d_global_work_sizes, sizeof(device->max_3d_global_work_sizes));
}
+ return CL_SUCCESS;
+}
+
+extern "C"
+cl_int GenCreateKernel(cl_kernel kernel, const cl_device_id device)
+{
+ GBE_ASSERT(getGenKernelPrivate(kernel, device) == NULL);
+
+ Program* p = reinterpret_cast<Program*>(getGenProgramPrivate(kernel->program, device));
+ if (p == NULL)
+ return CL_INVALID_PROGRAM;
+
+ Kernel* ker = p->getKernel(kernel->name);
+ if (ker == NULL)
+ return CL_INVALID_KERNEL_NAME;
+
setGenKernelPrivate(kernel, device, ker);
return CL_SUCCESS;
}
@@ -750,7 +759,7 @@ cl_int GenEnqueueNDRangeKernel(cl_command_queue queue, cl_kernel kernel, const u
}
GenGPUWorkItemNDRange* ndRange = GBE_NEW(GenGPUWorkItemNDRange, gpuQueue->bufmgr, gpuQueue->ctx,
- gpuDev->device_id,
+ gpuDev->device_id,
event_ret, events, num_events);
if (ndRange->gpuState->stateInit(
queue->device->max_compute_unit * gpuDev->max_thread_per_unit, cst_sz / 32) != true) {