xref: /aosp_15_r20/external/OpenCL-CTS/test_conformance/basic/procs.h (revision 6467f958c7de8070b317fc65bcb0f6472e388d82)
1*6467f958SSadaf Ebrahimi //
2*6467f958SSadaf Ebrahimi // Copyright (c) 2023 The Khronos Group Inc.
3*6467f958SSadaf Ebrahimi //
4*6467f958SSadaf Ebrahimi // Licensed under the Apache License, Version 2.0 (the "License");
5*6467f958SSadaf Ebrahimi // you may not use this file except in compliance with the License.
6*6467f958SSadaf Ebrahimi // You may obtain a copy of the License at
7*6467f958SSadaf Ebrahimi //
8*6467f958SSadaf Ebrahimi //    http://www.apache.org/licenses/LICENSE-2.0
9*6467f958SSadaf Ebrahimi //
10*6467f958SSadaf Ebrahimi // Unless required by applicable law or agreed to in writing, software
11*6467f958SSadaf Ebrahimi // distributed under the License is distributed on an "AS IS" BASIS,
12*6467f958SSadaf Ebrahimi // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*6467f958SSadaf Ebrahimi // See the License for the specific language governing permissions and
14*6467f958SSadaf Ebrahimi // limitations under the License.
15*6467f958SSadaf Ebrahimi //
16*6467f958SSadaf Ebrahimi 
17*6467f958SSadaf Ebrahimi #include "harness/kernelHelpers.h"
18*6467f958SSadaf Ebrahimi #include "harness/testHarness.h"
19*6467f958SSadaf Ebrahimi #include "harness/errorHelpers.h"
20*6467f958SSadaf Ebrahimi #include "harness/typeWrappers.h"
21*6467f958SSadaf Ebrahimi #include "harness/conversions.h"
22*6467f958SSadaf Ebrahimi #include "harness/rounding_mode.h"
23*6467f958SSadaf Ebrahimi 
24*6467f958SSadaf Ebrahimi extern int      test_hostptr(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
25*6467f958SSadaf Ebrahimi extern int test_fpmath(cl_device_id deviceID, cl_context context,
26*6467f958SSadaf Ebrahimi                        cl_command_queue queue, int num_elements);
27*6467f958SSadaf Ebrahimi extern int      test_intmath_int(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
28*6467f958SSadaf Ebrahimi extern int      test_intmath_int2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
29*6467f958SSadaf Ebrahimi extern int      test_intmath_int4(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
30*6467f958SSadaf Ebrahimi extern int      test_intmath_long(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
31*6467f958SSadaf Ebrahimi extern int      test_intmath_long2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
32*6467f958SSadaf Ebrahimi extern int      test_intmath_long4(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
33*6467f958SSadaf Ebrahimi extern int      test_hiloeo(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
34*6467f958SSadaf Ebrahimi extern int        test_if(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
35*6467f958SSadaf Ebrahimi extern int        test_sizeof(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
36*6467f958SSadaf Ebrahimi extern int        test_loop(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
37*6467f958SSadaf Ebrahimi extern int        test_pointer_cast(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
38*6467f958SSadaf Ebrahimi extern int        test_local_arg_def(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
39*6467f958SSadaf Ebrahimi extern int        test_local_kernel_def(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
40*6467f958SSadaf Ebrahimi extern int        test_local_kernel_scope(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
41*6467f958SSadaf Ebrahimi extern int        test_constant(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
42*6467f958SSadaf Ebrahimi extern int        test_constant_source(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
43*6467f958SSadaf Ebrahimi extern int      test_readimage(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
44*6467f958SSadaf Ebrahimi extern int      test_readimage_int16(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
45*6467f958SSadaf Ebrahimi extern int      test_readimage_fp32(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
46*6467f958SSadaf Ebrahimi extern int      test_writeimage(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
47*6467f958SSadaf Ebrahimi extern int      test_writeimage_int16(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
48*6467f958SSadaf Ebrahimi extern int      test_writeimage_fp32(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
49*6467f958SSadaf Ebrahimi extern int      test_mri_one(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
50*6467f958SSadaf Ebrahimi extern int      test_mri_multiple(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
51*6467f958SSadaf Ebrahimi extern int      test_image_r8(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
52*6467f958SSadaf Ebrahimi extern int      test_simplebarrier(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
53*6467f958SSadaf Ebrahimi extern int      test_barrier(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
54*6467f958SSadaf Ebrahimi extern int      test_wg_barrier(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
55*6467f958SSadaf Ebrahimi extern int test_int2fp(cl_device_id deviceID, cl_context context,
56*6467f958SSadaf Ebrahimi                        cl_command_queue queue, int num_elements);
57*6467f958SSadaf Ebrahimi extern int test_fp2int(cl_device_id deviceID, cl_context context,
58*6467f958SSadaf Ebrahimi                        cl_command_queue queue, int num_elements);
59*6467f958SSadaf Ebrahimi extern int      test_imagearraycopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
60*6467f958SSadaf Ebrahimi extern int      test_imagearraycopy3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
61*6467f958SSadaf Ebrahimi extern int      test_imagereadwrite(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
62*6467f958SSadaf Ebrahimi extern int      test_imagereadwrite3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
63*6467f958SSadaf Ebrahimi extern int      test_readimage3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
64*6467f958SSadaf Ebrahimi extern int      test_readimage3d_int16(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
65*6467f958SSadaf Ebrahimi extern int      test_readimage3d_fp32(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
66*6467f958SSadaf Ebrahimi extern int      test_bufferreadwriterect(cl_device_id device, cl_context context, cl_command_queue queue_, int num_elements);
67*6467f958SSadaf Ebrahimi extern int      test_imagecopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
68*6467f958SSadaf Ebrahimi extern int      test_imagecopy3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
69*6467f958SSadaf Ebrahimi extern int      test_imagerandomcopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
70*6467f958SSadaf Ebrahimi extern int      test_arraycopy(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems);
71*6467f958SSadaf Ebrahimi extern int      test_arrayimagecopy(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
72*6467f958SSadaf Ebrahimi extern int      test_arrayimagecopy3d(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
73*6467f958SSadaf Ebrahimi extern int      test_imagenpot(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
74*6467f958SSadaf Ebrahimi extern int      test_sampler_float(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
75*6467f958SSadaf Ebrahimi extern int      test_sampler_int(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
76*6467f958SSadaf Ebrahimi extern int      test_createkernelsinprogram(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
77*6467f958SSadaf Ebrahimi extern int      test_single_large_allocation(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
78*6467f958SSadaf Ebrahimi extern int      test_multiple_max_allocation(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
79*6467f958SSadaf Ebrahimi extern int      test_arrayreadwrite(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
80*6467f958SSadaf Ebrahimi extern int      test_imagedim_pow2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
81*6467f958SSadaf Ebrahimi extern int      test_imagedim_non_pow2(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
82*6467f958SSadaf Ebrahimi extern int      test_image_param(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
83*6467f958SSadaf Ebrahimi extern int      test_image_multipass_integer_coord(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
84*6467f958SSadaf Ebrahimi extern int      test_image_multipass_float_coord(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
85*6467f958SSadaf Ebrahimi 
86*6467f958SSadaf Ebrahimi extern int      test_vload_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
87*6467f958SSadaf Ebrahimi extern int      test_vload_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
88*6467f958SSadaf Ebrahimi extern int      test_vload_constant(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
89*6467f958SSadaf Ebrahimi extern int      test_vload_private(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
90*6467f958SSadaf Ebrahimi extern int      test_vstore_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
91*6467f958SSadaf Ebrahimi extern int      test_vstore_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
92*6467f958SSadaf Ebrahimi extern int      test_vstore_private(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
93*6467f958SSadaf Ebrahimi 
94*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_char(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
95*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_uchar(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
96*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_short(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
97*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_ushort(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
98*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_int(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
99*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_uint(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
100*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_long(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
101*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_ulong(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
102*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_float(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
103*6467f958SSadaf Ebrahimi extern int      test_explicit_s2v_double(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
104*6467f958SSadaf Ebrahimi 
105*6467f958SSadaf Ebrahimi extern int      test_enqueue_map_buffer(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
106*6467f958SSadaf Ebrahimi extern int      test_enqueue_map_image(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
107*6467f958SSadaf Ebrahimi 
108*6467f958SSadaf Ebrahimi extern int      test_work_item_functions(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
109*6467f958SSadaf Ebrahimi 
110*6467f958SSadaf Ebrahimi extern int      test_astype(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
111*6467f958SSadaf Ebrahimi 
112*6467f958SSadaf Ebrahimi extern int      test_native_kernel(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
113*6467f958SSadaf Ebrahimi 
114*6467f958SSadaf Ebrahimi extern int      test_async_copy_global_to_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
115*6467f958SSadaf Ebrahimi extern int      test_async_copy_local_to_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
116*6467f958SSadaf Ebrahimi extern int      test_async_strided_copy_global_to_local(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
117*6467f958SSadaf Ebrahimi extern int      test_async_strided_copy_local_to_global(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
118*6467f958SSadaf Ebrahimi extern int test_async_copy_global_to_local2D(cl_device_id deviceID,
119*6467f958SSadaf Ebrahimi                                              cl_context context,
120*6467f958SSadaf Ebrahimi                                              cl_command_queue queue,
121*6467f958SSadaf Ebrahimi                                              int num_elements);
122*6467f958SSadaf Ebrahimi extern int test_async_copy_local_to_global2D(cl_device_id deviceID,
123*6467f958SSadaf Ebrahimi                                              cl_context context,
124*6467f958SSadaf Ebrahimi                                              cl_command_queue queue,
125*6467f958SSadaf Ebrahimi                                              int num_elements);
126*6467f958SSadaf Ebrahimi extern int test_async_copy_global_to_local3D(cl_device_id deviceID,
127*6467f958SSadaf Ebrahimi                                              cl_context context,
128*6467f958SSadaf Ebrahimi                                              cl_command_queue queue,
129*6467f958SSadaf Ebrahimi                                              int num_elements);
130*6467f958SSadaf Ebrahimi extern int test_async_copy_local_to_global3D(cl_device_id deviceID,
131*6467f958SSadaf Ebrahimi                                              cl_context context,
132*6467f958SSadaf Ebrahimi                                              cl_command_queue queue,
133*6467f958SSadaf Ebrahimi                                              int num_elements);
134*6467f958SSadaf Ebrahimi extern int test_async_work_group_copy_fence_import_after_export_aliased_local(
135*6467f958SSadaf Ebrahimi     cl_device_id deviceID, cl_context context, cl_command_queue queue,
136*6467f958SSadaf Ebrahimi     int num_elements);
137*6467f958SSadaf Ebrahimi extern int test_async_work_group_copy_fence_import_after_export_aliased_global(
138*6467f958SSadaf Ebrahimi     cl_device_id deviceID, cl_context context, cl_command_queue queue,
139*6467f958SSadaf Ebrahimi     int num_elements);
140*6467f958SSadaf Ebrahimi extern int
141*6467f958SSadaf Ebrahimi test_async_work_group_copy_fence_import_after_export_aliased_global_and_local(
142*6467f958SSadaf Ebrahimi     cl_device_id deviceID, cl_context context, cl_command_queue queue,
143*6467f958SSadaf Ebrahimi     int num_elements);
144*6467f958SSadaf Ebrahimi extern int test_async_work_group_copy_fence_export_after_import_aliased_local(
145*6467f958SSadaf Ebrahimi     cl_device_id deviceID, cl_context context, cl_command_queue queue,
146*6467f958SSadaf Ebrahimi     int num_elements);
147*6467f958SSadaf Ebrahimi extern int test_async_work_group_copy_fence_export_after_import_aliased_global(
148*6467f958SSadaf Ebrahimi     cl_device_id deviceID, cl_context context, cl_command_queue queue,
149*6467f958SSadaf Ebrahimi     int num_elements);
150*6467f958SSadaf Ebrahimi extern int
151*6467f958SSadaf Ebrahimi test_async_work_group_copy_fence_export_after_import_aliased_global_and_local(
152*6467f958SSadaf Ebrahimi     cl_device_id deviceID, cl_context context, cl_command_queue queue,
153*6467f958SSadaf Ebrahimi     int num_elements);
154*6467f958SSadaf Ebrahimi extern int      test_prefetch(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
155*6467f958SSadaf Ebrahimi 
156*6467f958SSadaf Ebrahimi extern int      test_host_numeric_constants(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
157*6467f958SSadaf Ebrahimi extern int      test_kernel_numeric_constants(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
158*6467f958SSadaf Ebrahimi extern int      test_kernel_limit_constants(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
159*6467f958SSadaf Ebrahimi 
160*6467f958SSadaf Ebrahimi extern int    test_kernel_preprocessor_macros(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
161*6467f958SSadaf Ebrahimi 
162*6467f958SSadaf Ebrahimi extern int      test_kernel_call_kernel_function(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
163*6467f958SSadaf Ebrahimi 
164*6467f958SSadaf Ebrahimi extern int      test_parameter_types(cl_device_id device, cl_context context, cl_command_queue queue, int num_elements);
165*6467f958SSadaf Ebrahimi extern int test_vector_creation(cl_device_id deviceID, cl_context context,
166*6467f958SSadaf Ebrahimi                                 cl_command_queue queue, int num_elements);
167*6467f958SSadaf Ebrahimi extern int test_vector_swizzle(cl_device_id deviceID, cl_context context,
168*6467f958SSadaf Ebrahimi                                cl_command_queue queue, int num_elements);
169*6467f958SSadaf Ebrahimi extern int test_vec_type_hint(cl_device_id deviceID, cl_context context,
170*6467f958SSadaf Ebrahimi                               cl_command_queue queue, int num_elements);
171*6467f958SSadaf Ebrahimi 
172*6467f958SSadaf Ebrahimi 
173*6467f958SSadaf Ebrahimi extern int test_kernel_memory_alignment_local(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
174*6467f958SSadaf Ebrahimi extern int test_kernel_memory_alignment_global(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
175*6467f958SSadaf Ebrahimi extern int test_kernel_memory_alignment_constant(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
176*6467f958SSadaf Ebrahimi extern int test_kernel_memory_alignment_private(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
177*6467f958SSadaf Ebrahimi 
178*6467f958SSadaf Ebrahimi extern int test_progvar_prog_scope_misc(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
179*6467f958SSadaf Ebrahimi extern int test_progvar_prog_scope_uninit(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
180*6467f958SSadaf Ebrahimi extern int test_progvar_prog_scope_init(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
181*6467f958SSadaf Ebrahimi extern int test_progvar_func_scope(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
182*6467f958SSadaf Ebrahimi 
183*6467f958SSadaf Ebrahimi extern int test_global_work_offsets(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
184*6467f958SSadaf Ebrahimi extern int test_get_global_offset(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
185*6467f958SSadaf Ebrahimi 
186*6467f958SSadaf Ebrahimi extern int test_global_linear_id(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
187*6467f958SSadaf Ebrahimi extern int test_local_linear_id(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
188*6467f958SSadaf Ebrahimi extern int test_enqueued_local_size(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
189*6467f958SSadaf Ebrahimi 
190*6467f958SSadaf Ebrahimi extern int test_simple_read_image_pitch(cl_device_id device, cl_context cl_context_, cl_command_queue q, int num_elements);
191*6467f958SSadaf Ebrahimi extern int test_simple_write_image_pitch(cl_device_id device, cl_context cl_context_, cl_command_queue q, int num_elements);
192*6467f958SSadaf Ebrahimi 
193*6467f958SSadaf Ebrahimi #if defined( __APPLE__ )
194*6467f958SSadaf Ebrahimi extern int test_queue_priority(cl_device_id device, cl_context context, cl_command_queue queue, int num_elements);
195*6467f958SSadaf Ebrahimi #endif
196*6467f958SSadaf Ebrahimi 
197*6467f958SSadaf Ebrahimi extern int test_get_linear_ids(cl_device_id device, cl_context cl_context_, cl_command_queue q, int num_elements);
198*6467f958SSadaf Ebrahimi extern int test_rw_image_access_qualifier(cl_device_id device_id, cl_context context, cl_command_queue commands, int num_elements);
199*6467f958SSadaf Ebrahimi 
200