diff options
author | Yang Rong <rong.r.yang@intel.com> | 2014-10-17 11:04:16 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@intel.com> | 2014-10-17 12:27:49 +0800 |
commit | ac00eb3d479d63e8fe46c9709d97f63551e77160 (patch) | |
tree | aefa39724cc1df6c0e5d7805667db4daf192f188 | |
parent | cfe4bc351e46e61c0b3997af6e94def975261928 (diff) |
Refine the the error handling in function cl_command_queue_ND_range_gen7.
Return error code when work group error, and remove printf and exit(-1) when internal error..
Signed-off-by: Yang Rong <rong.r.yang@intel.com>
Reviewed-by: Zhigang Gong <zhigang.gong@linux.intel.com>
-rw-r--r-- | src/cl_command_queue_gen7.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/cl_command_queue_gen7.c b/src/cl_command_queue_gen7.c index b020540b..d847806e 100644 --- a/src/cl_command_queue_gen7.c +++ b/src/cl_command_queue_gen7.c @@ -317,7 +317,10 @@ cl_command_queue_ND_range_gen7(cl_command_queue queue, kernel.use_slm = interp_kernel_use_slm(ker->opaque); /* Compute the number of HW threads we need */ - TRY (cl_kernel_work_group_sz, ker, local_wk_sz, 3, &local_sz); + if(UNLIKELY(err = cl_kernel_work_group_sz(ker, local_wk_sz, 3, &local_sz) != CL_SUCCESS)) { + fprintf(stderr, "Beignet: Work group size exceed Kerne's work group size.\n"); + return err; + } kernel.thread_n = thread_n = (local_sz + simd_sz - 1) / simd_sz; kernel.curbe_sz = cst_sz; @@ -395,8 +398,7 @@ cl_command_queue_ND_range_gen7(cl_command_queue queue, return CL_SUCCESS; error: - fprintf(stderr, "error occured. \n"); - exit(-1); + /* only some command/buffer internal error reach here, so return error code OOR */ return CL_OUT_OF_RESOURCES; } |