1 #ifndef CL_USE_DEPRECATED_OPENCL_1_1_APIS
2 #define CL_USE_DEPRECATED_OPENCL_1_1_APIS
3 #endif
4
5 #ifndef CL_USE_DEPRECATED_OPENCL_1_2_APIS
6 #define CL_USE_DEPRECATED_OPENCL_1_2_APIS
7 #endif
8
9 #include <CL/cl.h>
10 #include "param_struct.h"
11 #include <platform/icd_test_log.h>
12
13 extern cl_kernel kernel;
14 extern cl_event event;
15 extern cl_context context;
16 extern cl_command_queue command_queue;
17 extern cl_device_id devices;
18 static int ret_val;
19 extern void CL_CALLBACK setevent_callback(cl_event _a, cl_int _b, void* _c);
20 extern void CL_CALLBACK setprintf_callback(cl_context _a, cl_uint _b, char* _c, void* _d );
21
22 struct clRetainKernel_st clRetainKernelData[NUM_ITEMS_clRetainKernel] =
23 {
24 {NULL}
25 };
26
test_clRetainKernel(const struct clRetainKernel_st * data)27 int test_clRetainKernel(const struct clRetainKernel_st* data)
28 {
29 (void)data;
30 test_icd_app_log("clRetainKernel(%p)\n", kernel);
31
32 ret_val=clRetainKernel(kernel);
33
34 test_icd_app_log("Value returned: %d\n", ret_val);
35
36 return 0;
37 }
38
39 struct clSetKernelArg_st clSetKernelArgData[NUM_ITEMS_clSetKernelArg] =
40 {
41 {NULL, 0, 0, NULL}
42 };
43
test_clSetKernelArg(const struct clSetKernelArg_st * data)44 int test_clSetKernelArg(const struct clSetKernelArg_st* data)
45 {
46 test_icd_app_log("clSetKernelArg(%p, %u, %u, %p)\n",
47 kernel,
48 data->arg_index,
49 data->arg_size,
50 data->arg_value);
51
52 ret_val=clSetKernelArg(kernel,
53 data->arg_index,
54 data->arg_size,
55 data->arg_value);
56
57 test_icd_app_log("Value returned: %d\n", ret_val);
58
59 return 0;
60 }
61
62 struct clGetKernelInfo_st clGetKernelInfoData[NUM_ITEMS_clGetKernelInfo] =
63 {
64 {NULL, 0, 0, NULL, NULL}
65 };
66
test_clGetKernelInfo(const struct clGetKernelInfo_st * data)67 int test_clGetKernelInfo(const struct clGetKernelInfo_st* data)
68 {
69 test_icd_app_log("clGetKernelInfo(%p, %u, %u, %p, %p)\n",
70 kernel,
71 data->param_name,
72 data->param_value_size,
73 data->param_value,
74 data->param_value_size_ret);
75
76 ret_val=clGetKernelInfo(kernel,
77 data->param_name,
78 data->param_value_size,
79 data->param_value,
80 data->param_value_size_ret);
81
82 test_icd_app_log("Value returned: %d\n", ret_val);
83
84 return 0;
85 }
86
87 struct clGetKernelArgInfo_st clGetKernelArgInfoData[NUM_ITEMS_clGetKernelArgInfo] =
88 {
89 {NULL, 0, 0, 0, NULL, NULL}
90 };
91
test_clGetKernelArgInfo(const struct clGetKernelArgInfo_st * data)92 int test_clGetKernelArgInfo(const struct clGetKernelArgInfo_st* data)
93 {
94 test_icd_app_log("clGetKernelArgInfo(%p, %u, %u, %u, %p, %p)\n",
95 kernel,
96 data->arg_indx,
97 data->param_name,
98 data->param_value_size,
99 data->param_value,
100 data->param_value_size_ret);
101
102 ret_val=clGetKernelArgInfo(kernel,
103 data->arg_indx,
104 data->param_name,
105 data->param_value_size,
106 data->param_value,
107 data->param_value_size_ret);
108
109 test_icd_app_log("Value returned: %d\n", ret_val);
110
111 return 0;
112 }
113
114 struct clGetKernelWorkGroupInfo_st clGetKernelWorkGroupInfoData[NUM_ITEMS_clGetKernelWorkGroupInfo] =
115 {
116 {NULL, NULL, 0, 0, NULL, NULL}
117 };
118
test_clGetKernelWorkGroupInfo(const struct clGetKernelWorkGroupInfo_st * data)119 int test_clGetKernelWorkGroupInfo(const struct clGetKernelWorkGroupInfo_st* data)
120 {
121 test_icd_app_log("clGetKernelWorkGroupInfo(%p, %p, %u, %u, %p, %p)\n",
122 kernel,
123 devices,
124 data->param_name,
125 data->param_value_size,
126 data->param_value,
127 data->param_value_size_ret);
128
129 ret_val=clGetKernelWorkGroupInfo(kernel,
130 devices,
131 data->param_name,
132 data->param_value_size,
133 data->param_value,
134 data->param_value_size_ret);
135
136 test_icd_app_log("Value returned: %d\n", ret_val);
137
138 return 0;
139 }
140
141 struct clEnqueueMigrateMemObjects_st clEnqueueMigrateMemObjectsData[NUM_ITEMS_clEnqueueMigrateMemObjects] =
142 {
143 {NULL, 0, NULL, 0x0, 0, NULL, NULL}
144 };
145
test_clEnqueueMigrateMemObjects(const struct clEnqueueMigrateMemObjects_st * data)146 int test_clEnqueueMigrateMemObjects(const struct clEnqueueMigrateMemObjects_st* data)
147 {
148 test_icd_app_log("clEnqueueMigrateMemObjects(%p, %u, %p, %x, %u, %p, %p)\n",
149 command_queue,
150 data->num_mem_objects,
151 data->mem_objects,
152 data->flags,
153 data->num_events_in_wait_list,
154 data->event_wait_list,
155 &event);
156
157 ret_val=clEnqueueMigrateMemObjects(command_queue,
158 data->num_mem_objects,
159 data->mem_objects,
160 data->flags,
161 data->num_events_in_wait_list,
162 data->event_wait_list,
163 &event);
164
165 test_icd_app_log("Value returned: %d\n", ret_val);
166
167 return 0;
168 }
169
170 struct clEnqueueNDRangeKernel_st clEnqueueNDRangeKernelData[NUM_ITEMS_clEnqueueNDRangeKernel] =
171 {
172 {NULL, NULL, 0, NULL, NULL, NULL, 0, NULL, NULL}
173 };
174
test_clEnqueueNDRangeKernel(const struct clEnqueueNDRangeKernel_st * data)175 int test_clEnqueueNDRangeKernel(const struct clEnqueueNDRangeKernel_st* data)
176 {
177 test_icd_app_log("clEnqueueNDRangeKernel(%p, %p, %u, %p, %p, %p, %u, %p, %p)\n",
178 command_queue,
179 kernel,
180 data->work_dim,
181 data->global_work_offset,
182 data->global_work_size,
183 data->local_work_size,
184 data->num_events_in_wait_list,
185 data->event_wait_list,
186 &event);
187
188 ret_val=clEnqueueNDRangeKernel(command_queue,
189 kernel,
190 data->work_dim,
191 data->global_work_offset,
192 data->global_work_size,
193 data->local_work_size,
194 data->num_events_in_wait_list,
195 data->event_wait_list,
196 &event);
197
198 test_icd_app_log("Value returned: %d\n", ret_val);
199
200 return 0;
201 }
202
203 struct clEnqueueTask_st clEnqueueTaskData[NUM_ITEMS_clEnqueueTask] =
204 {
205 {NULL, NULL, 0, NULL, NULL}
206 };
207
test_clEnqueueTask(const struct clEnqueueTask_st * data)208 int test_clEnqueueTask(const struct clEnqueueTask_st* data)
209 {
210 test_icd_app_log("clEnqueueTask(%p, %p, %u, %p, %p)\n",
211 command_queue,
212 kernel,
213 data->num_events_in_wait_list,
214 data->event_wait_list,
215 &event);
216
217 ret_val=clEnqueueTask(command_queue,
218 kernel,
219 data->num_events_in_wait_list,
220 data->event_wait_list,
221 &event);
222
223 test_icd_app_log("Value returned: %d\n", ret_val);
224
225 return 0;
226 }
227 struct clEnqueueNativeKernel_st clEnqueueNativeKernelData[NUM_ITEMS_clEnqueueNativeKernel] =
228 {
229 {NULL, NULL, NULL, 0, 0, NULL, NULL, 0, NULL, NULL}
230 };
231
test_clEnqueueNativeKernel(const struct clEnqueueNativeKernel_st * data)232 int test_clEnqueueNativeKernel(const struct clEnqueueNativeKernel_st* data) {
233 test_icd_app_log("clEnqueueNativeKernel(%p, %p, %p, %u, %u, %p, %p, %u, %p, %p)\n",
234 command_queue,
235 data->user_func,
236 data->args,
237 data->cb_args,
238 data->num_mem_objects,
239 data->mem_list,
240 data->args_mem_loc,
241 data->num_events_in_wait_list,
242 data->event_wait_list,
243 &event);
244
245 ret_val=clEnqueueNativeKernel(command_queue,
246 data->user_func,
247 data->args,
248 data->cb_args,
249 data->num_mem_objects,
250 data->mem_list,
251 data->args_mem_loc,
252 data->num_events_in_wait_list,
253 data->event_wait_list,
254 &event);
255
256 test_icd_app_log("Value returned: %d\n", ret_val);
257 return 0;
258 }
259
260 struct clSetUserEventStatus_st clSetUserEventStatusData[NUM_ITEMS_clSetUserEventStatus] =
261 {
262 {NULL, 0}
263 };
264
test_clSetUserEventStatus(const struct clSetUserEventStatus_st * data)265 int test_clSetUserEventStatus(const struct clSetUserEventStatus_st* data)
266 {
267 test_icd_app_log("clSetUserEventStatus(%p, %d)\n",
268 event,
269 data->execution_status);
270
271 ret_val=clSetUserEventStatus(event,
272 data->execution_status);
273
274 test_icd_app_log("Value returned: %d\n", ret_val);
275 return 0;
276 }
277
278 struct clWaitForEvents_st clWaitForEventsData[NUM_ITEMS_clWaitForEvents] =
279 {
280 {1, NULL}
281 };
282
test_clWaitForEvents(const struct clWaitForEvents_st * data)283 int test_clWaitForEvents(const struct clWaitForEvents_st* data)
284 {
285 test_icd_app_log("clWaitForEvents(%u, %p)\n",
286 data->num_events,
287 &event);
288
289 ret_val=clWaitForEvents(data->num_events,
290 &event);
291
292 test_icd_app_log("Value returned: %d\n", ret_val);
293 return 0;
294 }
295
296 struct clGetEventInfo_st clGetEventInfoData[NUM_ITEMS_clGetEventInfo] =
297 {
298 {NULL, 0, 0, NULL, NULL}
299 };
300
test_clGetEventInfo(const struct clGetEventInfo_st * data)301 int test_clGetEventInfo(const struct clGetEventInfo_st* data){
302 test_icd_app_log("clGetEventInfo(%p, %u, %u, %p, %p)\n",
303 event,
304 data->param_name,
305 data->param_value_size,
306 data->param_value,
307 data->param_value_size_ret);
308
309 ret_val=clGetEventInfo(event,
310 data->param_name,
311 data->param_value_size,
312 data->param_value,
313 data->param_value_size_ret);
314
315 test_icd_app_log("Value returned: %d\n", ret_val);
316
317 return 0;
318 }
319
320 struct clSetEventCallback_st clSetEventCallbackData[NUM_ITEMS_clSetEventCallback] =
321 {
322 {NULL, 0, setevent_callback, NULL}
323 };
324
test_clSetEventCallback(const struct clSetEventCallback_st * data)325 int test_clSetEventCallback(const struct clSetEventCallback_st* data)
326 {
327 test_icd_app_log("clSetEventCallback(%p, %d, %p, %p)\n",
328 event,
329 data->command_exec_callback_type,
330 data->pfn_event_notify,
331 data->user_data);
332
333 ret_val=clSetEventCallback(event,
334 data->command_exec_callback_type,
335 data->pfn_event_notify,
336 data->user_data);
337
338 test_icd_app_log("Value returned: %d\n", ret_val);
339 return 0;
340 }
341
342 struct clRetainEvent_st clRetainEventData[NUM_ITEMS_clRetainEvent] =
343 {
344 {NULL}
345 };
346
test_clRetainEvent(const struct clRetainEvent_st * data)347 int test_clRetainEvent(const struct clRetainEvent_st* data)
348 {
349 (void)data;
350 test_icd_app_log("clRetainEvent(%p)\n", event);
351
352 ret_val=clRetainEvent(event);
353
354 test_icd_app_log("Value returned: %d\n", ret_val);
355
356 return 0;
357 }
358
359 struct clEnqueueMarker_st clEnqueueMarkerData[NUM_ITEMS_clEnqueueMarker] =
360 {
361 {NULL, NULL}
362 };
363
test_clEnqueueMarker(const struct clEnqueueMarker_st * data)364 int test_clEnqueueMarker(const struct clEnqueueMarker_st* data)
365 {
366 (void)data;
367 test_icd_app_log("clEnqueueMarker(%p, %p)\n", command_queue, &event);
368
369 ret_val = clEnqueueMarker(command_queue, &event);
370
371 test_icd_app_log("Value returned: %d\n", ret_val);
372
373 return 0;
374 }
375
376 struct clEnqueueMarkerWithWaitList_st clEnqueueMarkerWithWaitListData[NUM_ITEMS_clEnqueueMarkerWithWaitList] =
377 {
378 {NULL, 0, NULL, NULL}
379 };
380
test_clEnqueueMarkerWithWaitList(const struct clEnqueueMarkerWithWaitList_st * data)381 int test_clEnqueueMarkerWithWaitList(const struct clEnqueueMarkerWithWaitList_st* data)
382 {
383 test_icd_app_log("clEnqueueMarkerWithWaitList(%p, %u, %p, %p)\n",
384 command_queue,
385 data->num_events_in_wait_list,
386 data->event_wait_list,
387 &event);
388
389 ret_val=clEnqueueMarkerWithWaitList(command_queue,
390 data->num_events_in_wait_list,
391 data->event_wait_list,
392 &event);
393
394 test_icd_app_log("Value returned: %d\n", ret_val);
395
396 return 0;
397 }
398
399 struct clEnqueueBarrierWithWaitList_st clEnqueueBarrierWithWaitListData[NUM_ITEMS_clEnqueueBarrierWithWaitList] =
400 {
401 {NULL, 0, NULL, NULL}
402 };
test_clEnqueueBarrierWithWaitList(const struct clEnqueueBarrierWithWaitList_st * data)403 int test_clEnqueueBarrierWithWaitList(const struct clEnqueueBarrierWithWaitList_st* data)
404 {
405 test_icd_app_log("clEnqueueBarrierWithWaitList(%p, %u, %p, %p)\n",
406 command_queue,
407 data->num_events_in_wait_list,
408 data->event_wait_list,
409 &event);
410
411 ret_val=clEnqueueBarrierWithWaitList(command_queue,
412 data->num_events_in_wait_list,
413 data->event_wait_list,
414 &event);
415
416 test_icd_app_log("Value returned: %d\n", ret_val);
417
418 return 0;
419 }
420
421 struct clEnqueueWaitForEvents_st clEnqueueWaitForEventsData[NUM_ITEMS_clEnqueueWaitForEvents] =
422 {
423 {NULL, 0, NULL}
424 };
425
test_clEnqueueWaitForEvents(const struct clEnqueueWaitForEvents_st * data)426 int test_clEnqueueWaitForEvents(const struct clEnqueueWaitForEvents_st* data)
427 {
428 test_icd_app_log("clEnqueueWaitForEvents(%p, %u, %p)\n",
429 command_queue,
430 data->num_events,
431 data->event_list);
432
433 ret_val = clEnqueueWaitForEvents(command_queue,
434 data->num_events,
435 data->event_list);
436
437 test_icd_app_log("Value returned: %d\n", ret_val);
438
439 return 0;
440 }
441
442 struct clEnqueueBarrier_st clEnqueueBarrierData[NUM_ITEMS_clEnqueueBarrier] =
443 {
444 {NULL}
445 };
446
test_clEnqueueBarrier(const struct clEnqueueBarrier_st * data)447 int test_clEnqueueBarrier(const struct clEnqueueBarrier_st* data)
448 {
449 (void)data;
450 test_icd_app_log("clEnqueueBarrier(%p)\n", command_queue);
451
452 ret_val = clEnqueueBarrier(command_queue);
453
454 test_icd_app_log("Value returned: %d\n", ret_val);
455
456 return 0;
457 }
458 struct clGetEventProfilingInfo_st clGetEventProfilingInfoData[NUM_ITEMS_clGetEventProfilingInfo] =
459 {
460 {NULL, 0, 0, NULL, NULL}
461 };
462
test_clGetEventProfilingInfo(const struct clGetEventProfilingInfo_st * data)463 int test_clGetEventProfilingInfo(const struct clGetEventProfilingInfo_st* data)
464 {
465 test_icd_app_log("clGetEventProfilingInfo(%p, %u, %u, %p, %p)\n",
466 event,
467 data->param_name,
468 data->param_value_size,
469 data->param_value,
470 data->param_value_size_ret);
471
472 ret_val=clGetEventProfilingInfo(event,
473 data->param_name,
474 data->param_value_size,
475 data->param_value,
476 data->param_value_size_ret);
477
478 test_icd_app_log("Value returned: %d\n", ret_val);
479
480 return 0;
481 }
482
483 struct clFlush_st clFlushData[NUM_ITEMS_clFlush] =
484 {
485 {NULL}
486 };
487
test_clFlush(const struct clFlush_st * data)488 int test_clFlush(const struct clFlush_st* data)
489 {
490 (void)data;
491 test_icd_app_log("clFlush(%p)\n", command_queue);
492
493 ret_val=clFlush(command_queue);
494
495 test_icd_app_log("Value returned: %d\n", ret_val);
496
497 return 0;
498 }
499
500 struct clFinish_st clFinishData[NUM_ITEMS_clFinish] =
501 {
502 {NULL}
503 };
504
test_clFinish(const struct clFinish_st * data)505 int test_clFinish(const struct clFinish_st* data)
506 {
507 (void)data;
508 test_icd_app_log("clFinish(%p)\n", command_queue);
509
510 ret_val=clFinish(command_queue);
511
512 test_icd_app_log("Value returned: %d\n", ret_val);
513
514 return 0;
515 }
516
test_kernel()517 int test_kernel()
518 {
519 int i;
520
521 for (i=0; i<NUM_ITEMS_clRetainKernel; i++) {
522 test_clRetainKernel(&clRetainKernelData[i]);
523 }
524
525 for (i=0; i<NUM_ITEMS_clSetKernelArg; i++) {
526 test_clSetKernelArg(&clSetKernelArgData[i]);
527 }
528
529 for (i=0; i<NUM_ITEMS_clGetKernelInfo; i++) {
530 test_clGetKernelInfo(&clGetKernelInfoData[i]);
531 }
532
533 for (i=0; i<NUM_ITEMS_clGetKernelArgInfo; i++) {
534 test_clGetKernelArgInfo(&clGetKernelArgInfoData[i]);
535 }
536
537 for (i=0; i<NUM_ITEMS_clGetKernelWorkGroupInfo; i++) {
538 test_clGetKernelWorkGroupInfo(&clGetKernelWorkGroupInfoData[i]);
539 }
540
541 for (i=0; i<NUM_ITEMS_clEnqueueMigrateMemObjects; i++) {
542 test_clEnqueueMigrateMemObjects(&clEnqueueMigrateMemObjectsData[i]);
543 }
544
545 for (i=0; i<NUM_ITEMS_clEnqueueNDRangeKernel; i++) {
546 test_clEnqueueNDRangeKernel(&clEnqueueNDRangeKernelData[i]);
547 }
548
549 for (i=0; i<NUM_ITEMS_clEnqueueTask; i++) {
550 test_clEnqueueTask(&clEnqueueTaskData[i]);
551 }
552
553 for (i=0; i<NUM_ITEMS_clEnqueueNativeKernel; i++) {
554 test_clEnqueueNativeKernel(&clEnqueueNativeKernelData[i]);
555 }
556
557 for (i=0; i<NUM_ITEMS_clSetUserEventStatus; i++) {
558 test_clSetUserEventStatus(&clSetUserEventStatusData[i]);
559 }
560
561 for (i=0; i<NUM_ITEMS_clWaitForEvents; i++) {
562 test_clWaitForEvents(&clWaitForEventsData[i]);
563 }
564
565 for (i=0; i<NUM_ITEMS_clGetEventInfo; i++) {
566 test_clGetEventInfo(&clGetEventInfoData[i]);
567 }
568
569 for (i=0; i<NUM_ITEMS_clSetEventCallback; i++) {
570 test_clSetEventCallback(&clSetEventCallbackData[i]);
571 }
572
573 for (i=0; i<NUM_ITEMS_clRetainEvent; i++) {
574 test_clRetainEvent(&clRetainEventData[i]);
575 }
576
577 for (i=0; i<NUM_ITEMS_clEnqueueMarker; i++) {
578 test_clEnqueueMarker(&clEnqueueMarkerData[i]);
579 }
580
581 for (i=0; i<NUM_ITEMS_clEnqueueBarrier; i++) {
582 test_clEnqueueBarrier(&clEnqueueBarrierData[i]);
583 }
584
585 for (i=0; i<NUM_ITEMS_clEnqueueMarkerWithWaitList; i++) {
586 test_clEnqueueMarkerWithWaitList(&clEnqueueMarkerWithWaitListData[i]);
587 }
588
589 for (i=0; i<NUM_ITEMS_clEnqueueBarrierWithWaitList; i++) {
590 test_clEnqueueBarrierWithWaitList(&clEnqueueBarrierWithWaitListData[i]);
591 }
592
593 for (i=0; i<NUM_ITEMS_clGetEventProfilingInfo; i++) {
594 test_clGetEventProfilingInfo(&clGetEventProfilingInfoData[i]);
595 }
596
597 for (i=0; i<NUM_ITEMS_clFlush; i++) {
598 test_clFlush(&clFlushData[i]);
599 }
600
601 for (i=0; i<NUM_ITEMS_clFinish; i++) {
602 test_clFinish(&clFinishData[i]);
603 }
604
605 return 0;
606 }
607