From ac00eb3d479d63e8fe46c9709d97f63551e77160 Mon Sep 17 00:00:00 2001 From: Yang Rong Date: Fri, 17 Oct 2014 11:04:16 +0800 Subject: [PATCH] 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 Reviewed-by: Zhigang Gong --- src/cl_command_queue_gen7.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cl_command_queue_gen7.c b/src/cl_command_queue_gen7.c index b020540..d847806 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; } -- 2.7.4