1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
#include <string.h>
#include "utest_helper.hpp"
void test_get_arg_info(void)
{
int ret;
uint32_t ret_val;
cl_kernel_arg_type_qualifier type_qual;
size_t ret_sz;
char name[64];
// Setup kernel and buffers
OCL_CREATE_KERNEL("test_get_arg_info");
//Arg 0
ret = clGetKernelArgInfo(kernel, 0, CL_KERNEL_ARG_ADDRESS_QUALIFIER,
sizeof(ret_val), &ret_val, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == sizeof(cl_kernel_arg_address_qualifier));
OCL_ASSERT(ret_val == CL_KERNEL_ARG_ADDRESS_GLOBAL);
ret = clGetKernelArgInfo(kernel, 0, CL_KERNEL_ARG_ACCESS_QUALIFIER,
sizeof(ret_val), &ret_val, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == sizeof(cl_kernel_arg_access_qualifier));
OCL_ASSERT(ret_val == CL_KERNEL_ARG_ACCESS_NONE);
ret = clGetKernelArgInfo(kernel, 0, CL_KERNEL_ARG_TYPE_NAME,
sizeof(name), name, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == strlen("float*") + 1);
OCL_ASSERT(!strcmp(name, "float*"));
ret = clGetKernelArgInfo(kernel, 0, CL_KERNEL_ARG_NAME,
sizeof(name), name, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == strlen("src") + 1);
OCL_ASSERT(!strcmp(name, "src"));
ret = clGetKernelArgInfo(kernel, 0, CL_KERNEL_ARG_TYPE_QUALIFIER,
sizeof(type_qual), &type_qual, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == sizeof(cl_kernel_arg_type_qualifier));
OCL_ASSERT(type_qual == (CL_KERNEL_ARG_TYPE_CONST|CL_KERNEL_ARG_TYPE_VOLATILE));
//Arg 1
ret = clGetKernelArgInfo(kernel, 1, CL_KERNEL_ARG_ADDRESS_QUALIFIER,
sizeof(ret_val), &ret_val, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == sizeof(cl_kernel_arg_address_qualifier));
OCL_ASSERT(ret_val == CL_KERNEL_ARG_ADDRESS_LOCAL);
ret = clGetKernelArgInfo(kernel, 1, CL_KERNEL_ARG_ACCESS_QUALIFIER,
sizeof(ret_val), &ret_val, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == sizeof(cl_kernel_arg_access_qualifier));
OCL_ASSERT(ret_val == CL_KERNEL_ARG_ACCESS_NONE);
ret = clGetKernelArgInfo(kernel, 1, CL_KERNEL_ARG_TYPE_NAME,
sizeof(name), name, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == strlen("int*") + 1);
OCL_ASSERT(!strcmp(name, "int*"));
ret = clGetKernelArgInfo(kernel, 1, CL_KERNEL_ARG_NAME,
sizeof(name), name, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == strlen("dst") + 1);
OCL_ASSERT(!strcmp(name, "dst"));
ret = clGetKernelArgInfo(kernel, 1, CL_KERNEL_ARG_TYPE_QUALIFIER,
sizeof(type_qual), &type_qual, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == sizeof(cl_kernel_arg_type_qualifier));
OCL_ASSERT(type_qual == CL_KERNEL_ARG_TYPE_NONE);
//Arg 2
ret = clGetKernelArgInfo(kernel, 2, CL_KERNEL_ARG_TYPE_NAME,
sizeof(name), name, &ret_sz);
OCL_ASSERT(ret == CL_SUCCESS);
OCL_ASSERT(ret_sz == strlen("test_arg_struct") + 1);
OCL_ASSERT(!strcmp(name, "test_arg_struct"));
}
MAKE_UTEST_FROM_FUNCTION(test_get_arg_info);
|