[Piglit] [PATCH 1/2] cl: clSetKernelArg check for image support
Jan Vesely
jan.vesely at rutgers.edu
Mon Feb 29 00:03:54 UTC 2016
On Wed, 2016-02-24 at 23:13 +0100, Serge Martin wrote:
> ---
> tests/cl/api/set-kernel-arg.c | 51 +++++++++++++++++++++++++++++++
> ------------
> 1 file changed, 37 insertions(+), 14 deletions(-)
>
> diff --git a/tests/cl/api/set-kernel-arg.c b/tests/cl/api/set-kernel-
> arg.c
> index 6bd7ec8..4e44fc0 100644
> --- a/tests/cl/api/set-kernel-arg.c
> +++ b/tests/cl/api/set-kernel-arg.c
> @@ -51,6 +51,21 @@ PIGLIT_CL_API_TEST_CONFIG_BEGIN
>
> PIGLIT_CL_API_TEST_CONFIG_END
>
> +static bool
> +get_device_image_support(cl_device_id device)
> +{
> + cl_bool *has_image =
> + piglit_cl_get_device_info(device,
> CL_DEVICE_IMAGE_SUPPORT);
> +
> + if (!*has_image) {
> + fprintf(stdout, "No image support. Sampler arg won't
> be tested\n");
It would be nicer to use subtests instead of this line, but that can be
done another time.
Reviewed-by: Jan Vesely <jan.vesely at rutgers.edu>
> + free(has_image);
> + return false;
> + }
> +
> + free(has_image);
> + return true;
> +}
>
> static bool
> test (cl_kernel kernel,
> @@ -88,10 +103,13 @@ piglit_cl_test(const int argc,
> cl_mem buffer;
> cl_float float_num = 1.1;
> cl_int int_num = 1;
> - cl_sampler sampler;
> + cl_sampler sampler = NULL;
>
> cl_mem invalid_buffer;
>
> + cl_bool image_support =
> + get_device_image_support(env->context-
> >device_ids[0]);
> +
> /*** Normal usage ***/
> kernel = clCreateKernel(env->program, "kernel_fun", &errNo);
> if(!piglit_cl_check_error(errNo, CL_SUCCESS)) {
> @@ -113,16 +131,18 @@ piglit_cl_test(const int argc,
> return PIGLIT_FAIL;
> }
>
> - sampler = clCreateSampler(env->context->cl_ctx,
> - CL_TRUE,
> - CL_ADDRESS_NONE,
> - CL_FILTER_NEAREST,
> - &errNo);
> - if(!piglit_cl_check_error(errNo, CL_SUCCESS)) {
> - fprintf(stderr,
> - "Failed (error code: %s): Create
> sampler.\n",
> - piglit_cl_get_error_name(errNo));
> - return PIGLIT_FAIL;
> + if (image_support) {
> + sampler = clCreateSampler(env->context->cl_ctx,
> + CL_TRUE,
> + CL_ADDRESS_NONE,
> + CL_FILTER_NEAREST,
> + &errNo);
> + if(!piglit_cl_check_error(errNo, CL_SUCCESS)) {
> + fprintf(stderr,
> + "Failed (error code: %s): Create
> sampler.\n",
> + piglit_cl_get_error_name(errNo));
> + return PIGLIT_FAIL;
> + }
> }
>
> test(kernel, 0, sizeof(cl_mem), &buffer,
> @@ -134,9 +154,12 @@ piglit_cl_test(const int argc,
> test(kernel, 2, sizeof(cl_int), NULL,
> CL_SUCCESS, &result,
> "Set kernel argument for array");
> - test(kernel, 3, sizeof(cl_sampler), &sampler,
> - CL_SUCCESS, &result,
> - "Set kernel argument for sampler");
> +
> + if (image_support) {
> + test(kernel, 3, sizeof(cl_sampler), &sampler,
> + CL_SUCCESS, &result,
> + "Set kernel argument for sampler");
> + }
>
> /*
> * Next line is also valid.
--
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20160228/49c84b82/attachment.sig>
More information about the Piglit
mailing list