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