xref: /aosp_15_r20/external/OpenCL-CTS/test_conformance/api/procs.h (revision 6467f958c7de8070b317fc65bcb0f6472e388d82)
1*6467f958SSadaf Ebrahimi //
2*6467f958SSadaf Ebrahimi // Copyright (c) 2017 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 #include "harness/errorHelpers.h"
17*6467f958SSadaf Ebrahimi #include "harness/kernelHelpers.h"
18*6467f958SSadaf Ebrahimi #include "harness/typeWrappers.h"
19*6467f958SSadaf Ebrahimi #include "harness/clImageHelper.h"
20*6467f958SSadaf Ebrahimi #include "harness/imageHelpers.h"
21*6467f958SSadaf Ebrahimi extern float    calculate_ulperror(float a, float b);
22*6467f958SSadaf Ebrahimi 
23*6467f958SSadaf Ebrahimi extern int        test_load_single_kernel(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
24*6467f958SSadaf Ebrahimi extern int        test_load_two_kernels(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
25*6467f958SSadaf Ebrahimi extern int        test_load_two_kernels_in_one(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
26*6467f958SSadaf Ebrahimi extern int        test_load_two_kernels_manually(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
27*6467f958SSadaf Ebrahimi extern int      test_get_program_info_kernel_names( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
28*6467f958SSadaf Ebrahimi extern int        test_create_kernels_in_program(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
29*6467f958SSadaf Ebrahimi extern int        test_enqueue_task(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
30*6467f958SSadaf Ebrahimi extern int      test_repeated_setup_cleanup(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
31*6467f958SSadaf Ebrahimi 
32*6467f958SSadaf Ebrahimi extern int        test_bool_type(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
33*6467f958SSadaf Ebrahimi extern int        test_platform_extensions(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
34*6467f958SSadaf Ebrahimi extern int        test_get_platform_info(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
35*6467f958SSadaf Ebrahimi extern int        test_get_sampler_info(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
36*6467f958SSadaf Ebrahimi extern int        test_get_sampler_info_compatibility(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
37*6467f958SSadaf Ebrahimi extern int        test_get_command_queue_info(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
38*6467f958SSadaf Ebrahimi extern int        test_get_command_queue_info_compatibility(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
39*6467f958SSadaf Ebrahimi extern int        test_get_context_info(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
40*6467f958SSadaf Ebrahimi extern int        test_get_device_info(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
41*6467f958SSadaf Ebrahimi extern int        test_kernel_required_group_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
42*6467f958SSadaf Ebrahimi 
43*6467f958SSadaf Ebrahimi extern int        test_binary_get(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
44*6467f958SSadaf Ebrahimi extern int        test_binary_create(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
45*6467f958SSadaf Ebrahimi 
46*6467f958SSadaf Ebrahimi extern int        test_release_kernel_order(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
47*6467f958SSadaf Ebrahimi extern int        test_release_during_execute(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
48*6467f958SSadaf Ebrahimi 
49*6467f958SSadaf Ebrahimi extern int        test_get_kernel_info(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
50*6467f958SSadaf Ebrahimi extern int test_kernel_private_memory_size(cl_device_id deviceID,
51*6467f958SSadaf Ebrahimi                                            cl_context context,
52*6467f958SSadaf Ebrahimi                                            cl_command_queue queue,
53*6467f958SSadaf Ebrahimi                                            int num_elements);
54*6467f958SSadaf Ebrahimi extern int        test_execute_kernel_local_sizes(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
55*6467f958SSadaf Ebrahimi extern int        test_set_kernel_arg_by_index(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
56*6467f958SSadaf Ebrahimi extern int        test_set_kernel_arg_struct(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
57*6467f958SSadaf Ebrahimi extern int        test_set_kernel_arg_constant(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
58*6467f958SSadaf Ebrahimi extern int        test_set_kernel_arg_struct_array(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
59*6467f958SSadaf Ebrahimi extern int        test_kernel_global_constant(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
60*6467f958SSadaf Ebrahimi 
61*6467f958SSadaf Ebrahimi extern int        test_min_max_thread_dimensions(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
62*6467f958SSadaf Ebrahimi extern int        test_min_max_work_items_sizes(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
63*6467f958SSadaf Ebrahimi extern int        test_min_max_work_group_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
64*6467f958SSadaf Ebrahimi extern int        test_min_max_read_image_args(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
65*6467f958SSadaf Ebrahimi extern int        test_min_max_write_image_args(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
66*6467f958SSadaf Ebrahimi extern int        test_min_max_mem_alloc_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
67*6467f958SSadaf Ebrahimi extern int        test_min_max_image_2d_width(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
68*6467f958SSadaf Ebrahimi extern int        test_min_max_image_2d_height(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
69*6467f958SSadaf Ebrahimi extern int        test_min_max_image_3d_width(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
70*6467f958SSadaf Ebrahimi extern int        test_min_max_image_3d_height(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
71*6467f958SSadaf Ebrahimi extern int        test_min_max_image_3d_depth(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
72*6467f958SSadaf Ebrahimi extern int      test_min_max_image_array_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
73*6467f958SSadaf Ebrahimi extern int      test_min_max_image_buffer_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
74*6467f958SSadaf Ebrahimi extern int        test_min_max_parameter_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
75*6467f958SSadaf Ebrahimi extern int        test_min_max_samplers(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
76*6467f958SSadaf Ebrahimi extern int        test_min_max_constant_buffer_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
77*6467f958SSadaf Ebrahimi extern int        test_min_max_constant_args(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
78*6467f958SSadaf Ebrahimi extern int        test_min_max_compute_units(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
79*6467f958SSadaf Ebrahimi extern int        test_min_max_address_bits(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
80*6467f958SSadaf Ebrahimi extern int        test_min_max_single_fp_config(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
81*6467f958SSadaf Ebrahimi extern int      test_min_max_double_fp_config(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
82*6467f958SSadaf Ebrahimi extern int        test_min_max_local_mem_size(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
83*6467f958SSadaf Ebrahimi extern int        test_min_max_kernel_preferred_work_group_size_multiple(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
84*6467f958SSadaf Ebrahimi extern int        test_min_max_execution_capabilities(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
85*6467f958SSadaf Ebrahimi extern int        test_min_max_queue_properties(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
86*6467f958SSadaf Ebrahimi extern int        test_min_max_device_version(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
87*6467f958SSadaf Ebrahimi extern int        test_min_max_language_version(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
88*6467f958SSadaf Ebrahimi 
89*6467f958SSadaf Ebrahimi extern int        test_native_kernel(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
90*6467f958SSadaf Ebrahimi 
91*6467f958SSadaf Ebrahimi extern int      test_create_context_from_type(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
92*6467f958SSadaf Ebrahimi 
93*6467f958SSadaf Ebrahimi extern int      test_get_platform_ids(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
94*6467f958SSadaf Ebrahimi 
95*6467f958SSadaf Ebrahimi extern int        test_kernel_arg_changes(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
96*6467f958SSadaf Ebrahimi extern int        test_kernel_arg_multi_setup_random(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
97*6467f958SSadaf Ebrahimi 
98*6467f958SSadaf Ebrahimi extern int        test_retain_queue_single(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
99*6467f958SSadaf Ebrahimi extern int        test_retain_queue_multiple(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
100*6467f958SSadaf Ebrahimi extern int        test_retain_mem_object_single(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
101*6467f958SSadaf Ebrahimi extern int        test_retain_mem_object_multiple(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
102*6467f958SSadaf Ebrahimi extern int        test_retain_mem_object_set_kernel_arg(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
103*6467f958SSadaf Ebrahimi extern int      test_min_data_type_align_size_alignment(cl_device_id device, cl_context context, cl_command_queue queue, int n_elems );
104*6467f958SSadaf Ebrahimi 
105*6467f958SSadaf Ebrahimi extern int test_context_destructor_callback(cl_device_id deviceID,
106*6467f958SSadaf Ebrahimi                                             cl_context context,
107*6467f958SSadaf Ebrahimi                                             cl_command_queue queue,
108*6467f958SSadaf Ebrahimi                                             int num_elements);
109*6467f958SSadaf Ebrahimi extern int test_mem_object_destructor_callback(cl_device_id deviceID,
110*6467f958SSadaf Ebrahimi                                                cl_context context,
111*6467f958SSadaf Ebrahimi                                                cl_command_queue queue,
112*6467f958SSadaf Ebrahimi                                                int num_elements);
113*6467f958SSadaf Ebrahimi 
114*6467f958SSadaf Ebrahimi extern int      test_null_buffer_arg( cl_device_id device_id, cl_context context, cl_command_queue queue, int num_elements );
115*6467f958SSadaf Ebrahimi extern int      test_get_buffer_info( cl_device_id deviceID, cl_context context, cl_command_queue ignoreQueue, int num_elements );
116*6467f958SSadaf Ebrahimi extern int      test_get_image2d_info( cl_device_id deviceID, cl_context context, cl_command_queue ignoreQueue, int num_elements );
117*6467f958SSadaf Ebrahimi extern int      test_get_image3d_info( cl_device_id deviceID, cl_context context, cl_command_queue ignoreQueue, int num_elements );
118*6467f958SSadaf Ebrahimi extern int      test_get_image1d_info( cl_device_id deviceID, cl_context context, cl_command_queue ignoreQueue, int num_elements );
119*6467f958SSadaf Ebrahimi extern int      test_get_image1d_array_info( cl_device_id deviceID, cl_context context, cl_command_queue ignoreQueue, int num_elements );
120*6467f958SSadaf Ebrahimi extern int      test_get_image2d_array_info( cl_device_id deviceID, cl_context context, cl_command_queue ignoreQueue, int num_elements );
121*6467f958SSadaf Ebrahimi extern int      test_get_kernel_arg_info( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements );
122*6467f958SSadaf Ebrahimi extern int      test_queue_hint(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
123*6467f958SSadaf Ebrahimi extern int      test_sub_group_dispatch(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
124*6467f958SSadaf Ebrahimi extern int      test_clone_kernel(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
125*6467f958SSadaf Ebrahimi extern int      test_zero_sized_enqueue(cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements);
126*6467f958SSadaf Ebrahimi extern int      test_queue_properties( cl_device_id deviceID, cl_context context, cl_command_queue queue, int num_elements );
127*6467f958SSadaf Ebrahimi extern int test_queue_flush_on_release(cl_device_id deviceID,
128*6467f958SSadaf Ebrahimi                                        cl_context context,
129*6467f958SSadaf Ebrahimi                                        cl_command_queue queue,
130*6467f958SSadaf Ebrahimi                                        int num_elements);
131*6467f958SSadaf Ebrahimi extern int test_buffer_properties_queries(cl_device_id deviceID,
132*6467f958SSadaf Ebrahimi                                           cl_context context,
133*6467f958SSadaf Ebrahimi                                           cl_command_queue queue,
134*6467f958SSadaf Ebrahimi                                           int num_elements);
135*6467f958SSadaf Ebrahimi extern int test_image_properties_queries(cl_device_id deviceID,
136*6467f958SSadaf Ebrahimi                                          cl_context context,
137*6467f958SSadaf Ebrahimi                                          cl_command_queue queue,
138*6467f958SSadaf Ebrahimi                                          int num_elements);
139*6467f958SSadaf Ebrahimi extern int test_queue_properties_queries(cl_device_id deviceID,
140*6467f958SSadaf Ebrahimi                                          cl_context context,
141*6467f958SSadaf Ebrahimi                                          cl_command_queue queue,
142*6467f958SSadaf Ebrahimi                                          int num_elements);
143*6467f958SSadaf Ebrahimi int test_pipe_properties_queries(cl_device_id deviceID, cl_context context,
144*6467f958SSadaf Ebrahimi                                  cl_command_queue queue, int num_elements);
145*6467f958SSadaf Ebrahimi 
146*6467f958SSadaf Ebrahimi extern int test_consistency_svm(cl_device_id deviceID, cl_context context,
147*6467f958SSadaf Ebrahimi                                 cl_command_queue queue, int num_elements);
148*6467f958SSadaf Ebrahimi extern int test_consistency_memory_model(cl_device_id deviceID,
149*6467f958SSadaf Ebrahimi                                          cl_context context,
150*6467f958SSadaf Ebrahimi                                          cl_command_queue queue,
151*6467f958SSadaf Ebrahimi                                          int num_elements);
152*6467f958SSadaf Ebrahimi extern int test_consistency_device_enqueue(cl_device_id deviceID,
153*6467f958SSadaf Ebrahimi                                            cl_context context,
154*6467f958SSadaf Ebrahimi                                            cl_command_queue queue,
155*6467f958SSadaf Ebrahimi                                            int num_elements);
156*6467f958SSadaf Ebrahimi extern int test_consistency_pipes(cl_device_id deviceID, cl_context context,
157*6467f958SSadaf Ebrahimi                                   cl_command_queue queue, int num_elements);
158*6467f958SSadaf Ebrahimi extern int test_consistency_progvar(cl_device_id deviceID, cl_context context,
159*6467f958SSadaf Ebrahimi                                     cl_command_queue queue, int num_elements);
160*6467f958SSadaf Ebrahimi extern int test_consistency_non_uniform_work_group(cl_device_id deviceID,
161*6467f958SSadaf Ebrahimi                                                    cl_context context,
162*6467f958SSadaf Ebrahimi                                                    cl_command_queue queue,
163*6467f958SSadaf Ebrahimi                                                    int num_elements);
164*6467f958SSadaf Ebrahimi extern int test_consistency_read_write_images(cl_device_id deviceID,
165*6467f958SSadaf Ebrahimi                                               cl_context context,
166*6467f958SSadaf Ebrahimi                                               cl_command_queue queue,
167*6467f958SSadaf Ebrahimi                                               int num_elements);
168*6467f958SSadaf Ebrahimi extern int test_consistency_2d_image_from_buffer(cl_device_id deviceID,
169*6467f958SSadaf Ebrahimi                                                  cl_context context,
170*6467f958SSadaf Ebrahimi                                                  cl_command_queue queue,
171*6467f958SSadaf Ebrahimi                                                  int num_elements);
172*6467f958SSadaf Ebrahimi extern int test_consistency_depth_images(cl_device_id deviceID,
173*6467f958SSadaf Ebrahimi                                          cl_context context,
174*6467f958SSadaf Ebrahimi                                          cl_command_queue queue,
175*6467f958SSadaf Ebrahimi                                          int num_elements);
176*6467f958SSadaf Ebrahimi extern int test_consistency_device_and_host_timer(cl_device_id deviceID,
177*6467f958SSadaf Ebrahimi                                                   cl_context context,
178*6467f958SSadaf Ebrahimi                                                   cl_command_queue queue,
179*6467f958SSadaf Ebrahimi                                                   int num_elements);
180*6467f958SSadaf Ebrahimi extern int test_consistency_il_programs(cl_device_id deviceID,
181*6467f958SSadaf Ebrahimi                                         cl_context context,
182*6467f958SSadaf Ebrahimi                                         cl_command_queue queue,
183*6467f958SSadaf Ebrahimi                                         int num_elements);
184*6467f958SSadaf Ebrahimi extern int test_consistency_subgroups(cl_device_id deviceID, cl_context context,
185*6467f958SSadaf Ebrahimi                                       cl_command_queue queue, int num_elements);
186*6467f958SSadaf Ebrahimi extern int test_consistency_prog_ctor_dtor(cl_device_id deviceID,
187*6467f958SSadaf Ebrahimi                                            cl_context context,
188*6467f958SSadaf Ebrahimi                                            cl_command_queue queue,
189*6467f958SSadaf Ebrahimi                                            int num_elements);
190*6467f958SSadaf Ebrahimi extern int test_consistency_3d_image_writes(cl_device_id deviceID,
191*6467f958SSadaf Ebrahimi                                             cl_context context,
192*6467f958SSadaf Ebrahimi                                             cl_command_queue queue,
193*6467f958SSadaf Ebrahimi                                             int num_elements);
194*6467f958SSadaf Ebrahimi 
195*6467f958SSadaf Ebrahimi extern int test_min_image_formats(cl_device_id deviceID, cl_context context,
196*6467f958SSadaf Ebrahimi                                   cl_command_queue queue, int num_elements);
197*6467f958SSadaf Ebrahimi extern int test_negative_get_platform_info(cl_device_id deviceID,
198*6467f958SSadaf Ebrahimi                                            cl_context context,
199*6467f958SSadaf Ebrahimi                                            cl_command_queue queue,
200*6467f958SSadaf Ebrahimi                                            int num_elements);
201*6467f958SSadaf Ebrahimi extern int test_negative_get_platform_ids(cl_device_id deviceID,
202*6467f958SSadaf Ebrahimi                                           cl_context context,
203*6467f958SSadaf Ebrahimi                                           cl_command_queue queue,
204*6467f958SSadaf Ebrahimi                                           int num_elements);
205*6467f958SSadaf Ebrahimi extern int test_kernel_attributes(cl_device_id deviceID, cl_context context,
206*6467f958SSadaf Ebrahimi                                   cl_command_queue queue, int num_elements);
207