xref: /aosp_15_r20/external/OpenCL-ICD-Loader/test/loader_test/test_image_objects.c (revision 1cddb830dba8aa7c1cc1039338e56b3b9fa24952)
1 #include <stdlib.h>
2 
3 #include <CL/cl.h>
4 #include "param_struct.h"
5 #include <platform/icd_test_log.h>
6 
7 extern cl_mem image;
8 extern cl_context  context;
9 extern cl_command_queue command_queue;
10 extern cl_event event;
11 extern cl_mem buffer;
12 
13 const struct clGetSupportedImageFormats_st clGetSupportedImageFormatsData[NUM_ITEMS_clGetSupportedImageFormats] =
14 {
15     { NULL, 0x0, 0, 0, NULL, NULL }
16 };
17 
18 const struct clEnqueueCopyImageToBuffer_st clEnqueueCopyImageToBufferData[NUM_ITEMS_clEnqueueCopyImageToBuffer] =
19 {
20     { NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, NULL }
21 };
22 
23 const struct clEnqueueCopyBufferToImage_st clEnqueueCopyBufferToImageData[NUM_ITEMS_clEnqueueCopyBufferToImage] =
24 {
25     { NULL, NULL, NULL, 0, NULL, NULL, 0, NULL, NULL }
26 };
27 
28 const struct clEnqueueMapImage_st clEnqueueMapImageData[NUM_ITEMS_clEnqueueMapImage] =
29 {
30     { NULL, NULL, 0, 0x0, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL}
31 };
32 
33 const struct clEnqueueReadImage_st clEnqueueReadImageData[NUM_ITEMS_clEnqueueReadImage] =
34 {
35     { NULL, NULL, 0, NULL, NULL, 0, 0, NULL, 0, NULL, NULL }
36 };
37 
38 const struct clEnqueueWriteImage_st clEnqueueWriteImageData[NUM_ITEMS_clEnqueueWriteImage] =
39 {
40     { NULL, NULL, 0, NULL, NULL, 0, 0, NULL, 0, NULL, NULL }
41 };
42 
43 const struct clEnqueueFillImage_st clEnqueueFillImageData[NUM_ITEMS_clEnqueueFillImage] =
44 {
45     { NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL }
46 };
47 
48 const struct clEnqueueCopyImage_st clEnqueueCopyImageData[NUM_ITEMS_clEnqueueCopyImage] =
49 {
50     { NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL }
51 };
52 
53 const struct clGetImageInfo_st clGetImageInfoData[NUM_ITEMS_clGetImageInfo] =
54 {
55     { NULL, 0, 0, NULL, NULL}
56 };
57 
test_clGetSupportedImageFormats(const struct clGetSupportedImageFormats_st * data)58 int test_clGetSupportedImageFormats(const struct clGetSupportedImageFormats_st *data)
59 {
60     cl_int ret_val;
61 
62     test_icd_app_log("clGetSupportedImageFormats(%p, %x, %u, %u, %p, %p)\n",
63                      context,
64                      data->flags,
65                      data->image_type,
66                      data->num_entries,
67                      data->image_formats,
68                      data->num_image_formats);
69 
70     ret_val = clGetSupportedImageFormats(context,
71                                     data->flags,
72                                     data->image_type,
73                                     data->num_entries,
74                                     data->image_formats,
75                                     data->num_image_formats);
76 
77     test_icd_app_log("Value returned: %d\n", ret_val);
78 
79     return 0;
80 
81 }
82 
test_clEnqueueCopyImageToBuffer(const struct clEnqueueCopyImageToBuffer_st * data)83 int test_clEnqueueCopyImageToBuffer(const struct clEnqueueCopyImageToBuffer_st *data)
84 {
85     cl_int ret_val;
86 
87     test_icd_app_log("clEnqueueCopyImageToBuffer(%p, %p, %p, %p, %p, %u, %u, %p, %p)\n",
88                      command_queue,
89                      image,
90                      buffer,
91                      data->src_origin,
92                      data->region,
93                      data->dst_offset,
94                      data->num_events_in_wait_list,
95                      data->event_wait_list,
96                      &event);
97 
98     ret_val = clEnqueueCopyImageToBuffer(command_queue,
99                                     image,
100                                     buffer,
101                                     data->src_origin,
102                                     data->region,
103                                     data->dst_offset,
104                                     data->num_events_in_wait_list,
105                                     data->event_wait_list,
106                                     &event);
107 
108     test_icd_app_log("Value returned: %d\n", ret_val);
109 
110     return 0;
111 
112 }
113 
test_clEnqueueCopyBufferToImage(const struct clEnqueueCopyBufferToImage_st * data)114 int test_clEnqueueCopyBufferToImage(const struct clEnqueueCopyBufferToImage_st *data)
115 {
116     cl_int ret_val;
117 
118     test_icd_app_log("clEnqueueCopyBufferToImage(%p, %p, %p, %u, %p, %p, %u, %p, %p)\n",
119                      command_queue,
120                      buffer,
121                      image,
122                      data->src_offset,
123                      data->dst_origin,
124                      data->region,
125                      data->num_events_in_wait_list,
126                      data->event_wait_list,
127                      &event);
128 
129     ret_val = clEnqueueCopyBufferToImage(command_queue,
130                                     buffer,
131                                     image,
132                                     data->src_offset,
133                                     data->dst_origin,
134                                     data->region,
135                                     data->num_events_in_wait_list,
136                                     data->event_wait_list,
137                                     &event);
138 
139     test_icd_app_log("Value returned: %d\n", ret_val);
140 
141     return 0;
142 
143 }
144 
test_clEnqueueMapImage(const struct clEnqueueMapImage_st * data)145 int test_clEnqueueMapImage(const struct clEnqueueMapImage_st *data)
146 {
147     void *return_value;
148     test_icd_app_log("clEnqueueMapImage(%p, %p, %u, %x, %p, %p, %p, %p, %u, %p, %p, %p)\n",
149                      command_queue,
150                      image,
151                      data->blocking_map,
152                      data->map_flags,
153                      data->origin,
154                      data->region,
155                      data->image_row_pitch,
156                      data->image_slice_pitch,
157                      data->num_events_in_wait_list,
158                      data->event_wait_list,
159                      &event,
160                      data->errcode_ret);
161 
162     return_value = clEnqueueMapImage(command_queue,
163                                 image,
164                                 data->blocking_map,
165                                 data->map_flags,
166                                 data->origin,
167                                 data->region,
168                                 data->image_row_pitch,
169                                 data->image_slice_pitch,
170                                 data->num_events_in_wait_list,
171                                 data->event_wait_list,
172                                 &event,
173                                 data->errcode_ret);
174 
175     test_icd_app_log("Value returned: %p\n", return_value);
176 
177     free(return_value);
178 
179     return 0;
180 
181 }
182 
test_clEnqueueReadImage(const struct clEnqueueReadImage_st * data)183 int test_clEnqueueReadImage(const struct clEnqueueReadImage_st *data)
184 {
185     cl_int ret_val;
186 
187     test_icd_app_log("clEnqueueReadImage(%p, %p, %u, %p, %p, %u, %u, %p, %u, %p, %p)\n",
188                      command_queue,
189                      image,
190                      data->blocking_read,
191                      data->origin,
192                      data->region,
193                      data->row_pitch,
194                      data->slice_pitch,
195                      data->ptr,
196                      data->num_events_in_wait_list,
197                      data->event_wait_list,
198                      &event);
199 
200     ret_val = clEnqueueReadImage(command_queue,
201                             image,
202                             data->blocking_read,
203                             data->origin,
204                             data->region,
205                             data->row_pitch,
206                             data->slice_pitch,
207                             data->ptr,
208                             data->num_events_in_wait_list,
209                             data->event_wait_list,
210                             &event);
211 
212     test_icd_app_log("Value returned: %d\n", ret_val);
213 
214     return 0;
215 
216 }
217 
test_clEnqueueWriteImage(const struct clEnqueueWriteImage_st * data)218 int test_clEnqueueWriteImage(const struct clEnqueueWriteImage_st *data)
219 {
220     cl_int ret_val;
221 
222     test_icd_app_log("clEnqueueWriteImage(%p, %p, %u, %p, %p, %u, %u, %p, %u, %p, %p)\n",
223                      command_queue,
224                      image,
225                      data->blocking_write,
226                      data->origin,
227                      data->region,
228                      data->input_row_pitch,
229                      data->input_slice_pitch,
230                      data->ptr,
231                      data->num_events_in_wait_list,
232                      data->event_wait_list,
233                      &event);
234 
235     ret_val = clEnqueueWriteImage(command_queue,
236                                 image,
237                                 data->blocking_write,
238                                 data->origin,
239                                 data->region,
240                                 data->input_row_pitch,
241                                 data->input_slice_pitch,
242                                 data->ptr,
243                                 data->num_events_in_wait_list,
244                                 data->event_wait_list,
245                                 &event);
246 
247     test_icd_app_log("Value returned: %d\n", ret_val);
248 
249     return 0;
250 
251 }
252 
test_clEnqueueFillImage(const struct clEnqueueFillImage_st * data)253 int test_clEnqueueFillImage(const struct clEnqueueFillImage_st *data)
254 {
255     cl_int ret_val;
256 
257     test_icd_app_log("clEnqueueFillImage(%p, %p, %p, %p, %p, %u, %p, %p)\n",
258                      command_queue,
259                      image,
260                      data->fill_color,
261                      data->origin,
262                      data->region,
263                      data->num_events_in_wait_list,
264                      data->event_wait_list,
265                      &event);
266 
267     ret_val = clEnqueueFillImage(command_queue,
268                             image,
269                             data->fill_color,
270                             data->origin,
271                             data->region,
272                             data->num_events_in_wait_list,
273                             data->event_wait_list,
274                             &event);
275 
276     test_icd_app_log("Value returned: %d\n", ret_val);
277 
278     return 0;
279 
280 }
test_clEnqueueCopyImage(const struct clEnqueueCopyImage_st * data)281 int test_clEnqueueCopyImage(const struct clEnqueueCopyImage_st *data)
282 {
283     cl_int ret_val;
284 
285     test_icd_app_log("clEnqueueCopyImage(%p, %p, %p, %p, %p, %p, %u, %p, %p)\n",
286                      command_queue,
287                      image,
288                      image,
289                      data->src_origin,
290                      data->dst_origin,
291                      data->region,
292                      data->num_events_in_wait_list,
293                      data->event_wait_list,
294                      &event);
295 
296     ret_val = clEnqueueCopyImage(command_queue,
297                             image,
298                             image,
299                             data->src_origin,
300                             data->dst_origin,
301                             data->region,
302                             data->num_events_in_wait_list,
303                             data->event_wait_list,
304                             &event);
305 
306     test_icd_app_log("Value returned: %d\n", ret_val);
307 
308     return 0;
309 
310 }
311 
312 
test_clGetImageInfo(const struct clGetImageInfo_st * data)313 int test_clGetImageInfo(const struct clGetImageInfo_st *data)
314 {
315     cl_int ret_val;
316 
317     test_icd_app_log("clGetImageInfo(%p, %u, %u, %p, %p)\n",
318                      image,
319                      data->param_name,
320                      data->param_value_size,
321                      data->param_value,
322                      data->param_value_size_ret);
323 
324     ret_val = clGetImageInfo(image,
325                         data->param_name,
326                         data->param_value_size,
327                         data->param_value,
328                         data->param_value_size_ret);
329 
330     test_icd_app_log("Value returned: %d\n", ret_val);
331 
332     return 0;
333 
334 }
335 
test_image_objects()336 int test_image_objects()
337 {
338     int i;
339 
340     for (i = 0; i<NUM_ITEMS_clGetSupportedImageFormats; i++) {
341         test_clGetSupportedImageFormats(&clGetSupportedImageFormatsData[i]);
342     }
343 
344     for (i = 0; i<NUM_ITEMS_clEnqueueCopyImageToBuffer; i++) {
345         test_clEnqueueCopyImageToBuffer(&clEnqueueCopyImageToBufferData[i]);
346     }
347 
348     for (i = 0; i<NUM_ITEMS_clEnqueueCopyBufferToImage; i++) {
349         test_clEnqueueCopyBufferToImage(&clEnqueueCopyBufferToImageData[i]);
350     }
351 
352     for (i = 0; i<NUM_ITEMS_clEnqueueMapImage; i++) {
353         test_clEnqueueMapImage(&clEnqueueMapImageData[i]);
354     }
355 
356     for (i = 0; i<NUM_ITEMS_clEnqueueReadImage; i++) {
357         test_clEnqueueReadImage(&clEnqueueReadImageData[i]);
358     }
359 
360     for (i = 0; i<NUM_ITEMS_clEnqueueWriteImage; i++) {
361         test_clEnqueueWriteImage(&clEnqueueWriteImageData[i]);
362     }
363 
364     for (i = 0; i<NUM_ITEMS_clEnqueueFillImage; i++) {
365         test_clEnqueueFillImage(&clEnqueueFillImageData[i]);
366     }
367 
368     for (i = 0; i<NUM_ITEMS_clEnqueueCopyImage; i++) {
369         test_clEnqueueCopyImage(&clEnqueueCopyImageData[i]);
370     }
371 
372     for (i = 0; i<NUM_ITEMS_clGetImageInfo; i++) {
373         test_clGetImageInfo(&clGetImageInfoData[i]);
374     }
375 
376     return 0;
377 
378 }
379