Provide our own image_desc structure since it's too tangled to remove. Tests that require OCL 1.2 result in WARN: Piglit was compiled with lower OpenCL version (1.1) than version_min: 12. OCL 1.1 image tests pass on Intel CPU OCL when compiled in 1.1 environment.
Signed-off-by: Jan Vesely <[email protected]> --- Looks like the first one did not make it to the ML. tests/cl/program/program-tester.c | 2 +- tests/util/piglit-util-cl.c | 34 ++++++++++++++++++++-------------- tests/util/piglit-util-cl.h | 20 +++++++++++++++++++- 3 files changed, 40 insertions(+), 16 deletions(-) diff --git a/tests/cl/program/program-tester.c b/tests/cl/program/program-tester.c index 3e0ed43..0a3b011 100644 --- a/tests/cl/program/program-tester.c +++ b/tests/cl/program/program-tester.c @@ -345,7 +345,7 @@ struct test_arg { uint64_t ulp; /* image data */ - cl_image_desc image_desc; + piglit_image_desc image_desc; cl_image_format image_format; /* sampler data */ diff --git a/tests/util/piglit-util-cl.c b/tests/util/piglit-util-cl.c index 9bf45a2..efa289c 100644 --- a/tests/util/piglit-util-cl.c +++ b/tests/util/piglit-util-cl.c @@ -1006,14 +1006,18 @@ piglit_cl_read_whole_buffer(cl_command_queue command_queue, cl_mem buffer, cl_mem piglit_cl_create_image(piglit_cl_context context, cl_mem_flags flags, - const cl_image_format *format, const cl_image_desc *desc) + const cl_image_format *format, + const piglit_image_desc *desc) { cl_int errNo; cl_mem image = NULL; +#ifdef CL_VERSION_1_2 if (piglit_cl_get_platform_version(context->platform_id) >= 12) { image = clCreateImage(context->cl_ctx, flags, format, desc, NULL, &errNo); - } else if (desc->image_type == CL_MEM_OBJECT_IMAGE2D) { + } else +#endif + if (desc->image_type == CL_MEM_OBJECT_IMAGE2D) { image = clCreateImage2D(context->cl_ctx, flags, format, desc->image_width, desc->image_height, 0, NULL, &errNo); @@ -1068,36 +1072,38 @@ piglit_get_image_region(cl_mem image, size_t *region) free(p); switch (*type) { +#ifdef CL_VERSION_1_2 + case CL_MEM_OBJECT_IMAGE1D_ARRAY: + p = piglit_cl_get_image_info(image, CL_IMAGE_ARRAY_SIZE); + region[1] = *p; + free(p); + region[2] = 1; + break; case CL_MEM_OBJECT_IMAGE1D: case CL_MEM_OBJECT_IMAGE1D_BUFFER: region[1] = 1; region[2] = 1; break; - case CL_MEM_OBJECT_IMAGE2D: - p = piglit_cl_get_image_info(image, CL_IMAGE_HEIGHT); - region[1] = *p; - free(p); - region[2] = 1; - break; - case CL_MEM_OBJECT_IMAGE3D: + case CL_MEM_OBJECT_IMAGE2D_ARRAY: p = piglit_cl_get_image_info(image, CL_IMAGE_HEIGHT); region[1] = *p; free(p); - p = piglit_cl_get_image_info(image, CL_IMAGE_DEPTH); + p = piglit_cl_get_image_info(image, CL_IMAGE_ARRAY_SIZE); region[2] = *p; free(p); break; - case CL_MEM_OBJECT_IMAGE1D_ARRAY: - p = piglit_cl_get_image_info(image, CL_IMAGE_ARRAY_SIZE); +#endif + case CL_MEM_OBJECT_IMAGE2D: + p = piglit_cl_get_image_info(image, CL_IMAGE_HEIGHT); region[1] = *p; free(p); region[2] = 1; break; - case CL_MEM_OBJECT_IMAGE2D_ARRAY: + case CL_MEM_OBJECT_IMAGE3D: p = piglit_cl_get_image_info(image, CL_IMAGE_HEIGHT); region[1] = *p; free(p); - p = piglit_cl_get_image_info(image, CL_IMAGE_ARRAY_SIZE); + p = piglit_cl_get_image_info(image, CL_IMAGE_DEPTH); region[2] = *p; free(p); break; diff --git a/tests/util/piglit-util-cl.h b/tests/util/piglit-util-cl.h index 8526a9a..0330740 100644 --- a/tests/util/piglit-util-cl.h +++ b/tests/util/piglit-util-cl.h @@ -527,6 +527,24 @@ bool piglit_cl_read_whole_buffer(cl_command_queue command_queue, cl_mem buffer, void *ptr); +#ifdef CL_VERSION_1_2 +typedef cl_image_desc piglit_image_desc; +#else +/** Taken from OpenCL 1.2 specs 5.3.1.2 */ +typedef struct { + cl_mem_object_type image_type; + size_t image_width; + size_t image_height; + size_t image_depth; + size_t image_array_size; + size_t image_row_pitch; + size_t image_slice_pitch; + cl_uint num_mip_levels; + cl_uint num_samples; + cl_mem buffer; +} piglit_image_desc; +#endif + /** * \brief Create an image. @@ -541,7 +559,7 @@ cl_mem piglit_cl_create_image(piglit_cl_context context, cl_mem_flags flags, const cl_image_format *format, - const cl_image_desc *desc); + const piglit_image_desc *desc); /** * \brief Blocking write to an image. -- 2.4.10 _______________________________________________ Piglit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/piglit
