From 5b47d4b19f9607b33bf973ab063c9e77f6109312 Mon Sep 17 00:00:00 2001 From: Ahmed Hesham <117350656+ahesham-arm@users.noreply.github.com> Date: Sun, 9 Mar 2025 09:42:10 +0000 Subject: [PATCH] Migrate pipes suite to the new test registration framework (#2302) Contributes to #2181 Signed-off-by: Ahmed Hesham --- test_conformance/pipes/main.cpp | 69 +-- test_conformance/pipes/procs.h | 92 ---- test_conformance/pipes/test_pipe_info.cpp | 5 +- test_conformance/pipes/test_pipe_limits.cpp | 17 +- .../pipes/test_pipe_query_functions.cpp | 6 +- .../pipes/test_pipe_read_write.cpp | 462 ++++++++++-------- .../pipes/test_pipe_readwrite_errors.cpp | 5 +- .../pipes/test_pipe_subgroups.cpp | 15 +- 8 files changed, 296 insertions(+), 375 deletions(-) delete mode 100644 test_conformance/pipes/procs.h diff --git a/test_conformance/pipes/main.cpp b/test_conformance/pipes/main.cpp index 4241c4d4..34ab7b9f 100644 --- a/test_conformance/pipes/main.cpp +++ b/test_conformance/pipes/main.cpp @@ -16,7 +16,6 @@ #include "harness/compat.h" #include "harness/testHarness.h" -#include "procs.h" #include #include @@ -48,67 +47,9 @@ test_status InitCL(cl_device_id device) { return TEST_PASS; } -test_definition test_list[] = { - ADD_TEST(pipe_readwrite_int), - ADD_TEST(pipe_readwrite_uint), - ADD_TEST(pipe_readwrite_long), - ADD_TEST(pipe_readwrite_ulong), - ADD_TEST(pipe_readwrite_short), - ADD_TEST(pipe_readwrite_ushort), - ADD_TEST(pipe_readwrite_float), - ADD_TEST(pipe_readwrite_half), - ADD_TEST(pipe_readwrite_char), - ADD_TEST(pipe_readwrite_uchar), - ADD_TEST(pipe_readwrite_double), - ADD_TEST(pipe_readwrite_struct), - ADD_TEST(pipe_workgroup_readwrite_int), - ADD_TEST(pipe_workgroup_readwrite_uint), - ADD_TEST(pipe_workgroup_readwrite_long), - ADD_TEST(pipe_workgroup_readwrite_ulong), - ADD_TEST(pipe_workgroup_readwrite_short), - ADD_TEST(pipe_workgroup_readwrite_ushort), - ADD_TEST(pipe_workgroup_readwrite_float), - ADD_TEST(pipe_workgroup_readwrite_half), - ADD_TEST(pipe_workgroup_readwrite_char), - ADD_TEST(pipe_workgroup_readwrite_uchar), - ADD_TEST(pipe_workgroup_readwrite_double), - ADD_TEST(pipe_workgroup_readwrite_struct), - ADD_TEST(pipe_subgroup_readwrite_int), - ADD_TEST(pipe_subgroup_readwrite_uint), - ADD_TEST(pipe_subgroup_readwrite_long), - ADD_TEST(pipe_subgroup_readwrite_ulong), - ADD_TEST(pipe_subgroup_readwrite_short), - ADD_TEST(pipe_subgroup_readwrite_ushort), - ADD_TEST(pipe_subgroup_readwrite_float), - ADD_TEST(pipe_subgroup_readwrite_half), - ADD_TEST(pipe_subgroup_readwrite_char), - ADD_TEST(pipe_subgroup_readwrite_uchar), - ADD_TEST(pipe_subgroup_readwrite_double), - ADD_TEST(pipe_subgroup_readwrite_struct), - ADD_TEST(pipe_convenience_readwrite_int), - ADD_TEST(pipe_convenience_readwrite_uint), - ADD_TEST(pipe_convenience_readwrite_long), - ADD_TEST(pipe_convenience_readwrite_ulong), - ADD_TEST(pipe_convenience_readwrite_short), - ADD_TEST(pipe_convenience_readwrite_ushort), - ADD_TEST(pipe_convenience_readwrite_float), - ADD_TEST(pipe_convenience_readwrite_half), - ADD_TEST(pipe_convenience_readwrite_char), - ADD_TEST(pipe_convenience_readwrite_uchar), - ADD_TEST(pipe_convenience_readwrite_double), - ADD_TEST(pipe_convenience_readwrite_struct), - ADD_TEST(pipe_info), - ADD_TEST(pipe_max_args), - ADD_TEST(pipe_max_packet_size), - ADD_TEST(pipe_max_active_reservations), - ADD_TEST(pipe_query_functions), - ADD_TEST(pipe_readwrite_errors), - ADD_TEST(pipe_subgroups_divergence), -}; - -const int test_num = ARRAY_SIZE(test_list); - -int main(int argc, const char *argv[]) { - return runTestHarnessWithCheck(argc, argv, test_num, test_list, false, - 0, InitCL); +int main(int argc, const char *argv[]) +{ + return runTestHarnessWithCheck( + argc, argv, test_registry::getInstance().num_tests(), + test_registry::getInstance().definitions(), false, 0, InitCL); } diff --git a/test_conformance/pipes/procs.h b/test_conformance/pipes/procs.h deleted file mode 100644 index 5cbe7952..00000000 --- a/test_conformance/pipes/procs.h +++ /dev/null @@ -1,92 +0,0 @@ -// -// Copyright (c) 2017 The Khronos Group Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -#ifndef __PROCS_H__ -#define __PROCS_H__ - -#include "harness/kernelHelpers.h" -#include "harness/testHarness.h" -#include "harness/errorHelpers.h" -#include "harness/typeWrappers.h" -#include "harness/mt19937.h" -#include "harness/conversions.h" - -#ifndef __APPLE__ -#include -#endif - -extern int test_pipe_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); - -extern int test_pipe_workgroup_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_workgroup_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); - -extern int test_pipe_subgroup_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_subgroup_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); - -extern int test_pipe_convenience_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_convenience_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); - -extern int test_pipe_info( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ); -extern int test_pipe_max_args(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); -extern int test_pipe_max_packet_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); -extern int test_pipe_max_active_reservations(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); -extern int test_pipe_query_functions(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); -extern int test_pipe_readwrite_errors(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); -extern int test_pipe_subgroups_divergence(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements); - - -#endif // #ifndef __PROCS_H__ - diff --git a/test_conformance/pipes/test_pipe_info.cpp b/test_conformance/pipes/test_pipe_info.cpp index b230a4c4..5525a554 100644 --- a/test_conformance/pipes/test_pipe_info.cpp +++ b/test_conformance/pipes/test_pipe_info.cpp @@ -16,14 +16,15 @@ #include -#include "procs.h" +#include "harness/testHarness.h" +#include "harness/typeWrappers.h" #include "harness/parseParameters.h" const char* pipe_kernel_code = { "__kernel void pipe_kernel(__write_only pipe int out_pipe)\n" "{}\n" }; -int test_pipe_info( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_info) { clMemWrapper pipe; cl_int err; diff --git a/test_conformance/pipes/test_pipe_limits.cpp b/test_conformance/pipes/test_pipe_limits.cpp index 76b80b15..f403c03d 100644 --- a/test_conformance/pipes/test_pipe_limits.cpp +++ b/test_conformance/pipes/test_pipe_limits.cpp @@ -25,8 +25,9 @@ #include #include -#include "procs.h" +#include "harness/testHarness.h" #include "harness/errorHelpers.h" +#include "harness/typeWrappers.h" #define STRING_LENGTH 1024 @@ -150,7 +151,7 @@ static int verify_result_int(void *ptr1, void *ptr2, int n) return 0; } -int test_pipe_max_args(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements) +REGISTER_TEST(pipe_max_args) { clMemWrapper pipes[1024]; @@ -177,7 +178,7 @@ int test_pipe_max_args(cl_device_id deviceID, cl_context context, cl_command_que size_t min_alignment = get_min_alignment(context); - err = clGetDeviceInfo(deviceID, CL_DEVICE_MAX_PIPE_ARGS, + err = clGetDeviceInfo(device, CL_DEVICE_MAX_PIPE_ARGS, sizeof(max_pipe_args), (void *)&max_pipe_args, NULL); if (err) { @@ -263,7 +264,7 @@ int test_pipe_max_args(cl_device_id deviceID, cl_context context, cl_command_que } -int test_pipe_max_packet_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements) +REGISTER_TEST(pipe_max_packet_size) { clMemWrapper pipe; clMemWrapper buffers[2]; @@ -290,7 +291,7 @@ int test_pipe_max_packet_size(cl_device_id deviceID, cl_context context, cl_comm std::stringstream source; - err = clGetDeviceInfo(deviceID, CL_DEVICE_PIPE_MAX_PACKET_SIZE, + err = clGetDeviceInfo(device, CL_DEVICE_PIPE_MAX_PACKET_SIZE, sizeof(max_pipe_packet_size), (void *)&max_pipe_packet_size, NULL); test_error_ret(err, " clCreatePipe failed", -1); @@ -402,7 +403,7 @@ int test_pipe_max_packet_size(cl_device_id deviceID, cl_context context, cl_comm return 0; } -int test_pipe_max_active_reservations(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements) +REGISTER_TEST(pipe_max_active_reservations) { clMemWrapper pipe; clMemWrapper buffers[2]; @@ -437,12 +438,12 @@ int test_pipe_max_active_reservations(cl_device_id deviceID, cl_context context, global_work_size[0] = 1; - err = clGetDeviceInfo(deviceID, CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS, + err = clGetDeviceInfo(device, CL_DEVICE_PIPE_MAX_ACTIVE_RESERVATIONS, sizeof(max_active_reservations), (void *)&max_active_reservations, NULL); test_error_ret(err, " clGetDeviceInfo failed", -1); - err = clGetDeviceInfo(deviceID, CL_DEVICE_GLOBAL_MEM_SIZE, + err = clGetDeviceInfo(device, CL_DEVICE_GLOBAL_MEM_SIZE, sizeof(max_global_size), (void *)&max_global_size, NULL); test_error_ret(err, " clGetDeviceInfo failed", -1); diff --git a/test_conformance/pipes/test_pipe_query_functions.cpp b/test_conformance/pipes/test_pipe_query_functions.cpp index 21d19505..8f7fc41d 100644 --- a/test_conformance/pipes/test_pipe_query_functions.cpp +++ b/test_conformance/pipes/test_pipe_query_functions.cpp @@ -20,8 +20,9 @@ #include #include -#include "procs.h" +#include "harness/testHarness.h" #include "harness/errorHelpers.h" +#include "harness/typeWrappers.h" #define TEST_PRIME_INT ((1<<16)+1) @@ -77,7 +78,7 @@ static int verify_result(void *ptr1, void *ptr2, int n) return 0; } -int test_pipe_query_functions(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements) +REGISTER_TEST(pipe_query_functions) { clMemWrapper pipe; clMemWrapper buffers[4]; @@ -252,4 +253,3 @@ int test_pipe_query_functions(cl_device_id deviceID, cl_context context, cl_comm } return 0; } - diff --git a/test_conformance/pipes/test_pipe_read_write.cpp b/test_conformance/pipes/test_pipe_read_write.cpp index 425c7aee..ad1ed91d 100644 --- a/test_conformance/pipes/test_pipe_read_write.cpp +++ b/test_conformance/pipes/test_pipe_read_write.cpp @@ -25,9 +25,10 @@ #include #include -#include "procs.h" #include "kernels.h" #include "harness/errorHelpers.h" +#include "harness/typeWrappers.h" +#include "harness/conversions.h" #ifndef uchar typedef unsigned char uchar; @@ -694,7 +695,7 @@ int test_pipe_readwrite_struct_generic( cl_device_id deviceID, cl_context contex } -int test_pipe_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_int) { cl_int *inptr[5]; size_t ptrSizes[5]; @@ -721,20 +722,24 @@ int test_pipe_readwrite_int( cl_device_id deviceID, cl_context context, cl_comma } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_int ), (char*)"int", 5, (void**)inptr, - workgroup_int_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_int), (char *)"int", + 5, (void **)inptr, workgroup_int_kernel_name, foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_int ), (char*)"int", 5, (void**)inptr, - subgroup_int_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_int), (char *)"int", + 5, (void **)inptr, subgroup_int_kernel_name, foo); } else if(useConvenienceBuiltIn == 1) { - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_int ), (char*)"int", 5, (void**)inptr, - convenience_int_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_int), (char *)"int", + 5, (void **)inptr, convenience_int_kernel_name, foo); } else { - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_int ), (char*)"int", 5, (void**)inptr, - int_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_int), (char *)"int", 5, + (void **)inptr, int_kernel_name, foo); } @@ -744,10 +749,9 @@ int test_pipe_readwrite_int( cl_device_id deviceID, cl_context context, cl_comma free_mtdata(d); return err; - } -int test_pipe_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_uint) { cl_uint *inptr[5]; size_t ptrSizes[5]; @@ -774,20 +778,25 @@ int test_pipe_readwrite_uint( cl_device_id deviceID, cl_context context, cl_comm } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uint ), (char*)"uint", 5, (void**)inptr, - workgroup_uint_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_uint), + (char *)"uint", 5, (void **)inptr, workgroup_uint_kernel_name, foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uint ), (char*)"uint", 5, (void**)inptr, - subgroup_uint_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_uint), + (char *)"uint", 5, (void **)inptr, subgroup_uint_kernel_name, foo); } else if(useConvenienceBuiltIn == 1) { - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uint ), (char*)"uint", 5, (void**)inptr, - convenience_uint_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_uint), (char *)"uint", 5, + (void **)inptr, convenience_uint_kernel_name, + foo); } else { - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uint ), (char*)"uint", 5, (void**)inptr, - uint_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_uint), (char *)"uint", 5, + (void **)inptr, uint_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ @@ -796,10 +805,9 @@ int test_pipe_readwrite_uint( cl_device_id deviceID, cl_context context, cl_comm free_mtdata(d); return err; - } -int test_pipe_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_short) { cl_short *inptr[5]; size_t ptrSizes[5]; @@ -826,20 +834,27 @@ int test_pipe_readwrite_short( cl_device_id deviceID, cl_context context, cl_com } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_short ), (char*)"short", 5, (void**)inptr, - workgroup_short_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_short), (char *)"short", 5, + (void **)inptr, workgroup_short_kernel_name, + foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_short ), (char*)"short", 5, (void**)inptr, - subgroup_short_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_short), (char *)"short", 5, + (void **)inptr, subgroup_short_kernel_name, + foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_short ), (char*)"short", 5, (void**)inptr, - convenience_short_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_short), (char *)"short", 5, + (void **)inptr, convenience_short_kernel_name, + foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_short ), (char*)"short", 5, (void**)inptr, - short_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_short), (char *)"short", 5, + (void **)inptr, short_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ @@ -848,10 +863,9 @@ int test_pipe_readwrite_short( cl_device_id deviceID, cl_context context, cl_com free_mtdata(d); return err; - } -int test_pipe_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_ushort) { cl_ushort *inptr[5]; size_t ptrSizes[5]; @@ -878,20 +892,27 @@ int test_pipe_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_co } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ushort ), (char*)"ushort", 5, (void**)inptr, - workgroup_ushort_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ushort), (char *)"ushort", 5, + (void **)inptr, workgroup_ushort_kernel_name, + foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ushort ), (char*)"ushort", 5, (void**)inptr, - subgroup_ushort_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ushort), (char *)"ushort", 5, + (void **)inptr, subgroup_ushort_kernel_name, + foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ushort ), (char*)"ushort", 5, (void**)inptr, - convenience_ushort_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ushort), (char *)"ushort", 5, + (void **)inptr, + convenience_ushort_kernel_name, foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ushort ), (char*)"ushort", 5, (void**)inptr, - ushort_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ushort), (char *)"ushort", 5, + (void **)inptr, ushort_kernel_name, foo); } @@ -901,10 +922,9 @@ int test_pipe_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_co free_mtdata(d); return err; - } -int test_pipe_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_char) { cl_char *inptr[5]; size_t ptrSizes[5]; @@ -931,20 +951,25 @@ int test_pipe_readwrite_char( cl_device_id deviceID, cl_context context, cl_comm } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_char ), (char*)"char", 5, (void**)inptr, - workgroup_char_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_char), + (char *)"char", 5, (void **)inptr, workgroup_char_kernel_name, foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_char ), (char*)"char", 5, (void**)inptr, - subgroup_char_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_char), + (char *)"char", 5, (void **)inptr, subgroup_char_kernel_name, foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_char ), (char*)"char", 5, (void**)inptr, - convenience_char_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_char), (char *)"char", 5, + (void **)inptr, convenience_char_kernel_name, + foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_char ), (char*)"char", 5, (void**)inptr, - char_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_char), (char *)"char", 5, + (void **)inptr, char_kernel_name, foo); } @@ -954,10 +979,9 @@ int test_pipe_readwrite_char( cl_device_id deviceID, cl_context context, cl_comm free_mtdata(d); return err; - } -int test_pipe_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_uchar) { cl_uchar *inptr[5]; size_t ptrSizes[5]; @@ -984,20 +1008,27 @@ int test_pipe_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_com } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uchar ), (char*)"uchar", 5, (void**)inptr, - workgroup_uchar_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_uchar), (char *)"uchar", 5, + (void **)inptr, workgroup_uchar_kernel_name, + foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uchar ), (char*)"uchar", 5, (void**)inptr, - subgroup_uchar_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_uchar), (char *)"uchar", 5, + (void **)inptr, subgroup_uchar_kernel_name, + foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uchar ), (char*)"uchar", 5, (void**)inptr, - convenience_uchar_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_uchar), (char *)"uchar", 5, + (void **)inptr, convenience_uchar_kernel_name, + foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_uchar ), (char*)"uchar", 5, (void**)inptr, - uchar_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_uchar), (char *)"uchar", 5, + (void **)inptr, uchar_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ align_free( (void *)inptr[i] ); @@ -1005,10 +1036,9 @@ int test_pipe_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_com free_mtdata(d); return err; - } -int test_pipe_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_float) { float *inptr[5]; size_t ptrSizes[5]; @@ -1035,20 +1065,27 @@ int test_pipe_readwrite_float( cl_device_id deviceID, cl_context context, cl_com } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_float ), (char*)"float", 5, (void**)inptr, - workgroup_float_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_float), (char *)"float", 5, + (void **)inptr, workgroup_float_kernel_name, + foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_float ), (char*)"float", 5, (void**)inptr, - subgroup_float_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_float), (char *)"float", 5, + (void **)inptr, subgroup_float_kernel_name, + foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_float ), (char*)"float", 5, (void**)inptr, - convenience_float_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_float), (char *)"float", 5, + (void **)inptr, convenience_float_kernel_name, + foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_float ), (char*)"float", 5, (void**)inptr, - float_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_float), (char *)"float", 5, + (void **)inptr, float_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ @@ -1057,10 +1094,9 @@ int test_pipe_readwrite_float( cl_device_id deviceID, cl_context context, cl_com free_mtdata(d); return err; - } -int test_pipe_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_half) { float *inptr[5]; size_t ptrSizes[5]; @@ -1073,7 +1109,7 @@ int test_pipe_readwrite_half( cl_device_id deviceID, cl_context context, cl_comm foo = verify_readwrite_half; - if(!is_extension_available(deviceID, "cl_khr_fp16")) + if (!is_extension_available(device, "cl_khr_fp16")) { log_info( "cl_khr_fp16 is not supported on this platform. Skipping test.\n"); @@ -1093,20 +1129,25 @@ int test_pipe_readwrite_half( cl_device_id deviceID, cl_context context, cl_comm } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_half ), (char*)"half", 5, (void**)inptr, - workgroup_half_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_half), + (char *)"half", 5, (void **)inptr, workgroup_half_kernel_name, foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_half ), (char*)"half", 5, (void**)inptr, - subgroup_half_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_half), + (char *)"half", 5, (void **)inptr, subgroup_half_kernel_name, foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_half ), (char*)"half", 5, (void**)inptr, - convenience_half_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_half), (char *)"half", 5, + (void **)inptr, convenience_half_kernel_name, + foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_half ), (char*)"half", 5, (void**)inptr, - half_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_half), (char *)"half", 5, + (void **)inptr, half_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ @@ -1117,7 +1158,7 @@ int test_pipe_readwrite_half( cl_device_id deviceID, cl_context context, cl_comm return err; } -int test_pipe_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_long) { cl_long *inptr[5]; size_t ptrSizes[5]; @@ -1151,20 +1192,25 @@ int test_pipe_readwrite_long( cl_device_id deviceID, cl_context context, cl_comm } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_long ), (char*)"long", 5, (void**)inptr, - workgroup_long_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_long), + (char *)"long", 5, (void **)inptr, workgroup_long_kernel_name, foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_long ), (char*)"long", 5, (void**)inptr, - subgroup_long_kernel_name, foo); + err = test_pipe_readwrite( + device, context, queue, num_elements, sizeof(cl_long), + (char *)"long", 5, (void **)inptr, subgroup_long_kernel_name, foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_long ), (char*)"long", 5, (void**)inptr, - convenience_long_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_long), (char *)"long", 5, + (void **)inptr, convenience_long_kernel_name, + foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_long ), (char*)"long", 5, (void**)inptr, - long_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_long), (char *)"long", 5, + (void **)inptr, long_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ @@ -1173,10 +1219,9 @@ int test_pipe_readwrite_long( cl_device_id deviceID, cl_context context, cl_comm free_mtdata(d); return err; - } -int test_pipe_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_ulong) { cl_ulong *inptr[5]; size_t ptrSizes[5]; @@ -1210,20 +1255,27 @@ int test_pipe_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_com } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ulong ), (char*)"ulong", 5, (void**)inptr, - workgroup_ulong_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ulong), (char *)"ulong", 5, + (void **)inptr, workgroup_ulong_kernel_name, + foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ulong ), (char*)"ulong", 5, (void**)inptr, - subgroup_ulong_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ulong), (char *)"ulong", 5, + (void **)inptr, subgroup_ulong_kernel_name, + foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ulong ), (char*)"ulong", 5, (void**)inptr, - convenience_ulong_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ulong), (char *)"ulong", 5, + (void **)inptr, convenience_ulong_kernel_name, + foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_ulong ), (char*)"ulong", 5, (void**)inptr, - ulong_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_ulong), (char *)"ulong", 5, + (void **)inptr, ulong_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ @@ -1232,10 +1284,9 @@ int test_pipe_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_com free_mtdata(d); return err; - } -int test_pipe_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_double) { cl_double *inptr[5]; size_t ptrSizes[5]; @@ -1255,7 +1306,7 @@ int test_pipe_readwrite_double( cl_device_id deviceID, cl_context context, cl_co ptrSizes[4] = ptrSizes[3] << 1; //skip devices that don't support double - if(!is_extension_available(deviceID, "cl_khr_fp64")) + if (!is_extension_available(device, "cl_khr_fp64")) { log_info( "cl_khr_fp64 is not supported on this platform. Skipping test.\n"); @@ -1270,20 +1321,27 @@ int test_pipe_readwrite_double( cl_device_id deviceID, cl_context context, cl_co } if(useWorkgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_double ), (char*)"double", 5, (void**)inptr, - workgroup_double_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_double), (char *)"double", 5, + (void **)inptr, workgroup_double_kernel_name, + foo); } else if(useSubgroupReserve == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_double ), (char*)"double", 5, (void**)inptr, - subgroup_double_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_double), (char *)"double", 5, + (void **)inptr, subgroup_double_kernel_name, + foo); } else if(useConvenienceBuiltIn == 1){ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_double ), (char*)"double", 5, (void**)inptr, - convenience_double_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_double), (char *)"double", 5, + (void **)inptr, + convenience_double_kernel_name, foo); } else{ - err = test_pipe_readwrite( deviceID, context, queue, num_elements, sizeof( cl_double ), (char*)"double", 5, (void**)inptr, - double_kernel_name, foo); + err = test_pipe_readwrite(device, context, queue, num_elements, + sizeof(cl_double), (char *)"double", 5, + (void **)inptr, double_kernel_name, foo); } for ( i = 0; i < 5; i++ ){ @@ -1292,392 +1350,398 @@ int test_pipe_readwrite_double( cl_device_id deviceID, cl_context context, cl_co free_mtdata(d); return err; - } -int test_pipe_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_readwrite_struct) { const char *kernelNames[] = {"test_pipe_write_struct","test_pipe_read_struct"}; - return test_pipe_readwrite_struct_generic(deviceID, context, queue, num_elements, pipe_readwrite_struct_kernel_code, kernelNames); + return test_pipe_readwrite_struct_generic( + device, context, queue, num_elements, pipe_readwrite_struct_kernel_code, + kernelNames); } // Work-group functions for pipe reserve/commits -int test_pipe_workgroup_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_int) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_int(deviceID, context, queue, num_elements); + return test_pipe_readwrite_int(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_uint) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_uint(deviceID, context, queue, num_elements); + return test_pipe_readwrite_uint(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_short) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_short(deviceID, context, queue, num_elements); + return test_pipe_readwrite_short(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_ushort) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_ushort(deviceID, context, queue, num_elements); + return test_pipe_readwrite_ushort(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_char) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_char(deviceID, context, queue, num_elements); + return test_pipe_readwrite_char(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_uchar) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_uchar(deviceID, context, queue, num_elements); + return test_pipe_readwrite_uchar(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_float) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_float(deviceID, context, queue, num_elements); + return test_pipe_readwrite_float(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_half) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_half(deviceID, context, queue, num_elements); + return test_pipe_readwrite_half(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_long) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_long(deviceID, context, queue, num_elements); + return test_pipe_readwrite_long(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_ulong) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_ulong(deviceID, context, queue, num_elements); + return test_pipe_readwrite_ulong(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_double) { useWorkgroupReserve = 1; useSubgroupReserve = 0; useConvenienceBuiltIn = 0; - return test_pipe_readwrite_double(deviceID, context, queue, num_elements); + return test_pipe_readwrite_double(device, context, queue, num_elements); } -int test_pipe_workgroup_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_workgroup_readwrite_struct) { const char *kernelNames[] = {"test_pipe_workgroup_write_struct","test_pipe_workgroup_read_struct"}; - return test_pipe_readwrite_struct_generic(deviceID, context, queue, num_elements, pipe_workgroup_readwrite_struct_kernel_code, kernelNames); + return test_pipe_readwrite_struct_generic( + device, context, queue, num_elements, + pipe_workgroup_readwrite_struct_kernel_code, kernelNames); } // Sub-group functions for pipe reserve/commits -int test_pipe_subgroup_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_int) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_int(deviceID, context, queue, num_elements); + return test_pipe_readwrite_int(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_uint) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_uint(deviceID, context, queue, num_elements); + return test_pipe_readwrite_uint(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_short) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_short(deviceID, context, queue, num_elements); + return test_pipe_readwrite_short(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_ushort) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_ushort(deviceID, context, queue, num_elements); + return test_pipe_readwrite_ushort(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_char) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_char(deviceID, context, queue, num_elements); + return test_pipe_readwrite_char(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_uchar) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_uchar(deviceID, context, queue, num_elements); - + return test_pipe_readwrite_uchar(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_float) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_float(deviceID, context, queue, num_elements); + return test_pipe_readwrite_float(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_half) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_half(deviceID, context, queue, num_elements); + return test_pipe_readwrite_half(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_long) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_long(deviceID, context, queue, num_elements); + return test_pipe_readwrite_long(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_ulong) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_ulong(deviceID, context, queue, num_elements); + return test_pipe_readwrite_ulong(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_double) { useSubgroupReserve = 1; useWorkgroupReserve = 0; useConvenienceBuiltIn = 0; - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } - return test_pipe_readwrite_double(deviceID, context, queue, num_elements); + return test_pipe_readwrite_double(device, context, queue, num_elements); } -int test_pipe_subgroup_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_subgroup_readwrite_struct) { - if(!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); return CL_SUCCESS; } const char *kernelNames[] = {"test_pipe_subgroup_write_struct","test_pipe_subgroup_read_struct"}; - return test_pipe_readwrite_struct_generic(deviceID, context, queue, num_elements, pipe_subgroup_readwrite_struct_kernel_code, kernelNames); + return test_pipe_readwrite_struct_generic( + device, context, queue, num_elements, + pipe_subgroup_readwrite_struct_kernel_code, kernelNames); } // Convenience functions for pipe reserve/commits -int test_pipe_convenience_readwrite_int( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_int) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_int(deviceID, context, queue, num_elements); + return test_pipe_readwrite_int(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_uint( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_uint) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_uint(deviceID, context, queue, num_elements); + return test_pipe_readwrite_uint(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_short( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_short) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_short(deviceID, context, queue, num_elements); + return test_pipe_readwrite_short(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_ushort( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_ushort) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_ushort(deviceID, context, queue, num_elements); + return test_pipe_readwrite_ushort(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_char( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_char) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_char(deviceID, context, queue, num_elements); + return test_pipe_readwrite_char(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_uchar( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_uchar) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_uchar(deviceID, context, queue, num_elements); + return test_pipe_readwrite_uchar(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_float( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_float) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_float(deviceID, context, queue, num_elements); + return test_pipe_readwrite_float(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_half( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_half) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_half(deviceID, context, queue, num_elements); + return test_pipe_readwrite_half(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_long( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_long) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_long(deviceID, context, queue, num_elements); + return test_pipe_readwrite_long(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_ulong( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_ulong) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_ulong(deviceID, context, queue, num_elements); + return test_pipe_readwrite_ulong(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_double( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_double) { useConvenienceBuiltIn = 1; useSubgroupReserve = 0; useWorkgroupReserve = 0; - return test_pipe_readwrite_double(deviceID, context, queue, num_elements); + return test_pipe_readwrite_double(device, context, queue, num_elements); } -int test_pipe_convenience_readwrite_struct( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements ) +REGISTER_TEST(pipe_convenience_readwrite_struct) { const char *kernelNames[] = {"test_pipe_convenience_write_struct","test_pipe_convenience_read_struct"}; - return test_pipe_readwrite_struct_generic(deviceID, context, queue, num_elements, pipe_convenience_readwrite_struct_kernel_code, kernelNames); + return test_pipe_readwrite_struct_generic( + device, context, queue, num_elements, + pipe_convenience_readwrite_struct_kernel_code, kernelNames); } diff --git a/test_conformance/pipes/test_pipe_readwrite_errors.cpp b/test_conformance/pipes/test_pipe_readwrite_errors.cpp index d4b45248..087da1fb 100644 --- a/test_conformance/pipes/test_pipe_readwrite_errors.cpp +++ b/test_conformance/pipes/test_pipe_readwrite_errors.cpp @@ -20,8 +20,9 @@ #include #include -#include "procs.h" #include "harness/errorHelpers.h" +#include "harness/testHarness.h" +#include "harness/typeWrappers.h" const char* pipe_readwrite_errors_kernel_code = { "__kernel void test_pipe_write_error(__global int *src, __write_only pipe int out_pipe, __global int *status)\n" @@ -62,7 +63,7 @@ const char* pipe_readwrite_errors_kernel_code = { }; -int test_pipe_readwrite_errors(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements) +REGISTER_TEST(pipe_readwrite_errors) { clMemWrapper pipe; clMemWrapper buffers[3]; diff --git a/test_conformance/pipes/test_pipe_subgroups.cpp b/test_conformance/pipes/test_pipe_subgroups.cpp index 8e2f6e57..54bfd998 100644 --- a/test_conformance/pipes/test_pipe_subgroups.cpp +++ b/test_conformance/pipes/test_pipe_subgroups.cpp @@ -21,8 +21,10 @@ #include #include -#include "procs.h" +#include "harness/testHarness.h" #include "harness/errorHelpers.h" +#include "harness/typeWrappers.h" + #define TEST_INT_VALUE 100 const char* pipe_subgroups_kernel_code = { @@ -86,7 +88,7 @@ static int verify_result(void *ptr1, void *ptr2, int n) return 0; } -int test_pipe_subgroups_divergence(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements) +REGISTER_TEST(pipe_subgroups_divergence) { clMemWrapper pipe; clMemWrapper buffers[3]; @@ -112,7 +114,7 @@ int test_pipe_subgroups_divergence(cl_device_id deviceID, cl_context context, cl global_work_size[0] = (cl_uint)num_elements; - if (!is_extension_available(deviceID, "cl_khr_subgroups")) + if (!is_extension_available(device, "cl_khr_subgroups")) { log_info("cl_khr_subgroups is not supported on this platform. Skipping " "test.\n"); @@ -165,7 +167,7 @@ int test_pipe_subgroups_divergence(cl_device_id deviceID, cl_context context, cl test_error_ret(err, " Unable to get work group size to use", -1); cl_platform_id platform; - err = clGetDeviceInfo(deviceID, CL_DEVICE_PLATFORM, sizeof(platform), + err = clGetDeviceInfo(device, CL_DEVICE_PLATFORM, sizeof(platform), &platform, NULL); test_error_ret(err, " clGetDeviceInfo failed", -1); @@ -173,7 +175,10 @@ int test_pipe_subgroups_divergence(cl_device_id deviceID, cl_context context, cl (clGetKernelSubGroupInfoKHR_fn)clGetExtensionFunctionAddressForPlatform( platform, "clGetKernelSubGroupInfoKHR"); - err = clGetKernelSubGroupInfoKHR(kernel[0], deviceID, CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR, sizeof(local_work_size[0]), &local_work_size[0], sizeof(subgroup_count), &subgroup_count, NULL); + err = clGetKernelSubGroupInfoKHR( + kernel[0], device, CL_KERNEL_SUB_GROUP_COUNT_FOR_NDRANGE_KHR, + sizeof(local_work_size[0]), &local_work_size[0], sizeof(subgroup_count), + &subgroup_count, NULL); test_error_ret(err, " clGetKernelSubGroupInfoKHR failed", -1); if(subgroup_count <= 1) {