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 <[email protected]> > + 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 <[email protected]>
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
