From 12bc0c1f3f2216ae40b628b26cb28055b8628196 Mon Sep 17 00:00:00 2001 From: Sam Laynton Date: Mon, 5 Aug 2019 11:26:17 +0100 Subject: [PATCH] Check max work group size in test basic (#414) The test enqueued_local_size in test_basic used a local work group size larger than the minimum max supported work group size supported by some platforms. This change checks the max and clamps to it if requested size would be larger than supported. Signed-off-by: Sam Laynton --- test_conformance/basic/test_enqueued_local_size.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test_conformance/basic/test_enqueued_local_size.c b/test_conformance/basic/test_enqueued_local_size.c index 5db09246..3afd22bc 100644 --- a/test_conformance/basic/test_enqueued_local_size.c +++ b/test_conformance/basic/test_enqueued_local_size.c @@ -91,8 +91,14 @@ test_enqueued_local_size(cl_device_id device, cl_context context, cl_command_que globalsize[0] = (size_t)num_elements; globalsize[1] = (size_t)num_elements; - localsize[0] = 16; - localsize[1] = 11; + + size_t max_wgs; + err = clGetDeviceInfo(device, CL_DEVICE_MAX_WORK_GROUP_SIZE, sizeof(max_wgs), &max_wgs, NULL); + test_error( err, "clGetDeviceInfo failed."); + + localsize[0] = MIN(16, max_wgs); + localsize[1] = MIN(11, max_wgs / localsize[0]); + err = clEnqueueNDRangeKernel(queue, kernel[1], 2, NULL, globalsize, localsize, 0, NULL, NULL); test_error( err, "clEnqueueNDRangeKernel failed.");