[Piglit] [PATCH 1/1] cl: fix clGetKernelWorkGroupInfo
EdB
edb+piglit at sigluy.net
Sun Aug 10 07:46:05 PDT 2014
From: EdB <edb at sigluy.net>
If there is only one device associed with the kernel and device arg is NULL
you don't have to trigger CL_INVALID_DEVICE
---
tests/cl/api/get-kernel-work-group-info.c | 31 +++++++++++++++++++------------
1 file changed, 19 insertions(+), 12 deletions(-)
diff --git a/tests/cl/api/get-kernel-work-group-info.c b/tests/cl/api/get-kernel-work-group-info.c
index 47d09da..bf0bb29 100644
--- a/tests/cl/api/get-kernel-work-group-info.c
+++ b/tests/cl/api/get-kernel-work-group-info.c
@@ -61,6 +61,7 @@ piglit_cl_test(const int argc,
int i;
cl_int errNo;
cl_kernel kernel;
+ cl_uint* dev_count_ptr;
size_t param_value_size;
void* param_value;
@@ -168,24 +169,30 @@ piglit_cl_test(const int argc,
piglit_cl_get_error_name(errNo));
piglit_merge_result(&result, PIGLIT_FAIL);
}
-
+
/*
* CL_INVALID_DEVICE if device is not in the list of devices associated with
* kernel or if device is NULL but there is more than one device associated
* with kernel.
*/
- errNo = clGetKernelWorkGroupInfo(kernel,
- NULL,
- CL_KERNEL_WORK_GROUP_SIZE,
- 0,
- NULL,
- ¶m_value_size);
- if(!piglit_cl_check_error(errNo, CL_INVALID_DEVICE)) {
- fprintf(stderr,
- "Failed (error code: %s): Trigger CL_INVALID_DEVICE if device is NULL but there is more than one device associated with kernel.\n",
- piglit_cl_get_error_name(errNo));
- piglit_merge_result(&result, PIGLIT_FAIL);
+ dev_count_ptr = piglit_cl_get_program_info(env->program, CL_PROGRAM_NUM_DEVICES);
+ if (*dev_count_ptr != 1) {
+ errNo = clGetKernelWorkGroupInfo(kernel,
+ NULL,
+ CL_KERNEL_WORK_GROUP_SIZE,
+ 0,
+ NULL,
+ ¶m_value_size);
+ if(!piglit_cl_check_error(errNo, CL_INVALID_DEVICE)) {
+ if (*dev_count_ptr != 1) {
+ fprintf(stderr,
+ "Failed (error code: %s): Trigger CL_INVALID_DEVICE if device is NULL but there is more than one device associated with kernel.\n",
+ piglit_cl_get_error_name(errNo));
+ piglit_merge_result(&result, PIGLIT_FAIL);
+ }
+ }
}
+ free(dev_count_ptr);
clReleaseKernel(kernel);
--
2.0.4
More information about the Piglit
mailing list