[Piglit] [PATCH 2/2] cl: check for image support using util/ functions

Jan Vesely jan.vesely at rutgers.edu
Fri May 6 22:14:07 UTC 2016


On Fri, 2016-05-06 at 13:11 +0200, Serge Martin wrote:
> ---
>  tests/cl/api/create-image.c       | 19 +------------------
>  tests/cl/api/create-sampler.c     | 18 +-----------------
>  tests/cl/api/enqueue-fill-image.c | 10 +---------
>  tests/cl/api/get-image-info.c     | 19 +------------------
>  tests/cl/api/set-kernel-arg.c     | 18 +-----------------
>  5 files changed, 5 insertions(+), 79 deletions(-)
> 
> diff --git a/tests/cl/api/create-image.c b/tests/cl/api/create-
> image.c
> index 1ee5f71..29e552c 100644
> --- a/tests/cl/api/create-image.c
> +++ b/tests/cl/api/create-image.c
> @@ -38,23 +38,6 @@ PIGLIT_CL_API_TEST_CONFIG_BEGIN
>  
>  PIGLIT_CL_API_TEST_CONFIG_END
>  
> -static bool context_has_image_support(const piglit_cl_context ctx)
> -{
> -	unsigned i;
> -	for(i = 0; i < ctx->num_devices; i++) {
> -		int *image_support =
> -			piglit_cl_get_device_info(ctx-
> >device_ids[i],
> -						CL_DEVICE_IMAGE_SUPP
> ORT);
> -		if (*image_support) {
> -			free(image_support);
> -			return true;
> -		}
> -
> -		free(image_support);
> -	}
> -	return false;
> -}
> -
>  static void
>  no_image_check_invalid(
>  	cl_int errcode_ret,
> @@ -107,7 +90,7 @@ piglit_cl_test(const int argc,
>                 const struct piglit_cl_api_test_config* config,
>                 const struct piglit_cl_api_test_env* env)
>  {
> -	if (!context_has_image_support(env->context)) {
> +	if (!piglit_cl_get_context_image_support(env->context)) {
>  		return no_image_tests(env);
>  	} else {
>  		return PIGLIT_PASS;
> diff --git a/tests/cl/api/create-sampler.c b/tests/cl/api/create-
> sampler.c
> index dcdef05..d51fe47 100644
> --- a/tests/cl/api/create-sampler.c
> +++ b/tests/cl/api/create-sampler.c
> @@ -36,22 +36,6 @@ PIGLIT_CL_API_TEST_CONFIG_BEGIN
>  
>  PIGLIT_CL_API_TEST_CONFIG_END
>  
> -static bool context_has_image_support(const piglit_cl_context ctx)
> -{
> -	unsigned i;
> -	for(i = 0; i < ctx->num_devices; i++) {
> -		int *image_support =
> -			piglit_cl_get_device_info(ctx-
> >device_ids[i],
> -						CL_DEVICE_IMAGE_SUPP
> ORT);
> -		if (*image_support) {
> -			free(image_support);
> -			return true;
> -		}
> -		free(image_support);
> -	}
> -	return false;
> -}
> -
>  static enum piglit_result
>  no_image_tests(const struct piglit_cl_api_test_env* env)
>  {
> @@ -80,7 +64,7 @@ piglit_cl_test(const int argc,
>                 const struct piglit_cl_api_test_config* config,
>                 const struct piglit_cl_api_test_env* env)
>  {
> -	if (!context_has_image_support(env->context)) {
> +	if (!piglit_cl_get_context_image_support(env->context)) {
>  		return no_image_tests(env);
>  	} else {
>  		return PIGLIT_PASS;
> diff --git a/tests/cl/api/enqueue-fill-image.c
> b/tests/cl/api/enqueue-fill-image.c
> index 2839b67..4de5dca 100644
> --- a/tests/cl/api/enqueue-fill-image.c
> +++ b/tests/cl/api/enqueue-fill-image.c
> @@ -104,19 +104,11 @@ piglit_cl_test(const int argc,
>  	cl_command_queue queue = env->context->command_queues[0];
>  	int i;
>  
> -	cl_bool *image_support =
> -		piglit_cl_get_device_info(env->context-
> >device_ids[0],
> -		                          CL_DEVICE_IMAGE_SUPPORT);
> -
> -	if (!*image_support) {
> +	if (!piglit_cl_get_device_image_support(env->context-
> >device_ids[0])) {
>  		fprintf(stderr, "No image support\n");
> -		free(image_support);
>  		return PIGLIT_SKIP;
>  	}
>  
> -	free(image_support);
> -	image_support = NULL;
> -
>  	img_format.image_channel_order = CL_RGBA;
>  	img_format.image_channel_data_type = CL_UNSIGNED_INT8;
>  	img_desc.image_type = CL_MEM_OBJECT_IMAGE2D;
> diff --git a/tests/cl/api/get-image-info.c b/tests/cl/api/get-image-
> info.c
> index a8b5bec..d4dc842 100644
> --- a/tests/cl/api/get-image-info.c
> +++ b/tests/cl/api/get-image-info.c
> @@ -46,23 +46,6 @@ PIGLIT_CL_API_TEST_CONFIG_BEGIN
>  
>  PIGLIT_CL_API_TEST_CONFIG_END
>  
> -static bool context_has_image_support(const piglit_cl_context ctx)
> -{
> -	int ret = 0;
> -	unsigned i;
> -	for(i = 0; i < ctx->num_devices; i++) {
> -		int *image_support =
> -			piglit_cl_get_device_info(ctx-
> >device_ids[i],
> -						CL_DEVICE_IMAGE_SUPP
> ORT);
> -		if (image_support)
> -			ret |= *image_support;
> -
> -		free(image_support);
> -	}
> -	return ret;
> -}
> -
> -
>  enum piglit_result
>  piglit_cl_test(const int argc,
>                 const char** argv,
> @@ -79,7 +62,7 @@ piglit_cl_test(const int argc,
>  		.image_channel_data_type = CL_FLOAT,
>  	};
>  
> -	if (!context_has_image_support(env->context)) {
> +	if (!piglit_cl_get_context_image_support(env->context)) {
>  		fprintf(stderr, "No device with image support
> found!\n");
>  		return PIGLIT_SKIP;
>  	}
> diff --git a/tests/cl/api/set-kernel-arg.c b/tests/cl/api/set-kernel-
> arg.c
> index 0d476e3..9b5a567 100644
> --- a/tests/cl/api/set-kernel-arg.c
> +++ b/tests/cl/api/set-kernel-arg.c
> @@ -59,22 +59,6 @@ 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");
> -		free(has_image);
> -		return false;
> -	}
> -
> -	free(has_image);
> -	return true;
> -}
> -
>  static void
>  test (cl_kernel kernel,
>        cl_uint arg_index,
> @@ -126,7 +110,7 @@ piglit_cl_test(const int argc,
>  	cl_mem invalid_buffer;
>  
>  	cl_bool image_support =
> -		get_device_image_support(env->context-
> >device_ids[0]);
> +		piglit_cl_get_device_image_support(env->context-
> >device_ids[0]);
>  
>  	/*** Normal usage ***/
>  	kernel = clCreateKernel(env->program, "kernel_fun", &errNo);

For both patches:
Reviewed-by: Jan Vesely <jan.vesely at rutgers.edu>

Jan

-- 
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/20160506/680bbc31/attachment.sig>


More information about the Piglit mailing list