[Piglit] [PATCH 1/2] cl: clSetKernelArg check for image support
Serge Martin
edb+piglit at sigluy.net
Wed Feb 24 22:13:16 UTC 2016
---
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");
+ 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.
--
2.5.0
More information about the Piglit
mailing list