diff --git a/test_conformance/allocations/allocation_execute.cpp b/test_conformance/allocations/allocation_execute.cpp index 5168cfa4..9d0e8777 100644 --- a/test_conformance/allocations/allocation_execute.cpp +++ b/test_conformance/allocations/allocation_execute.cpp @@ -18,12 +18,12 @@ const char *buffer_kernel_pattern = { - "__kernel void sample_test(%s __global uint *result, __global uint *array_sizes, uint per_item)\n" + "__kernel void sample_test(%s __global uint *result, __global %s *array_sizes, uint per_item)\n" "{\n" "\tint tid = get_global_id(0);\n" "\tuint r = 0;\n" - "\tuint i;\n" - "\tfor(i=tid*per_item; i<(1+tid)*per_item; i++) {\n" + "\t%s i;\n" + "\tfor(i=(%s)tid*(%s)per_item; i<(%s)(1+tid)*(%s)per_item; i++) {\n" "%s" "\t}\n" "\tresult[tid] = r;\n" @@ -161,13 +161,31 @@ int execute_kernel(cl_context context, cl_command_queue *queue, cl_device_id dev for (i=0; i max_size) - max_size = (cl_uint)(size/sizeof(cl_uint)); + max_size = size/sizeof(cl_uint); + } + if (support64) { + buffer_sizes = clCreateBuffer(context, CL_MEM_COPY_HOST_PTR, sizeof(cl_ulong)*number_of_mems_used, ulSizes, &error); + } + else { + buffer_sizes = clCreateBuffer(context, CL_MEM_COPY_HOST_PTR, sizeof(cl_uint)*number_of_mems_used, uiSizes, &error); } - buffer_sizes = clCreateBuffer(context, CL_MEM_COPY_HOST_PTR, sizeof(cl_uint)*number_of_mems_used, sizes, &error); test_error_abort(error, "clCreateBuffer failed"); error = clSetKernelArg(kernel, number_of_mems_used+1, sizeof(cl_mem), &buffer_sizes); test_error(error, "clSetKernelArg failed"); @@ -239,7 +274,12 @@ int execute_kernel(cl_context context, cl_command_queue *queue, cl_device_id dev per_item_uint = (cl_uint)per_item; error = clSetKernelArg(kernel, number_of_mems_used+2, sizeof(per_item_uint), &per_item_uint); test_error(error, "clSetKernelArg failed"); - free(sizes); + } + if (ulSizes) { + free(ulSizes); + } + if (uiSizes) { + free(uiSizes); } size_t local_dims[3] = {1,1,1};