logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

clGetKernelArgInfo - Returns information about the arguments of a kernel.

Authors

TheKhronosGroup

Errors

       Returns CL_SUCCESS if the function is executed successfully. Otherwise, it returns one of the following
       errors:

       •   CL_INVALID_ARG_INDEX if arg_indx is not a valid argument index.

       •   CL_INVALID_VALUE if param_name is not valid, or if size in bytes specified by param_value_size is <
           size of return type as described in the table above and param_value is not NULL

       •   CL_KERNEL_ARG_INFO_NOT_AVAILABLE if the argument information is not available for kernel.

       •   CL_INVALID_KERNEL if kernel is not a valid kernel object.

Name

       clGetKernelArgInfo - Returns information about the arguments of a kernel.

       cl_intclGetKernelArgInfo(cl_kernelkernel,cl_uintarg_indx,cl_kernel_arg_infoparam_name,size_tparam_value_size,void*param_value,size_t*param_value_size_ret);

Notes

        1. OpenCL Specification
           page 166, section 5.7.3 - Kernel Object Queries (updated for 1.2 rev 14)

The Khronos Group                                  11/18/2024                           CLGETKERNELARGINFO(3clc)

Parameters

kernel
           Specifies the kernel object being queried.

        arg_indx
           The argument index. Arguments to the kernel are referred by indices that go from 0 for the leftmost
           argument to n - 1, where n is the total number of arguments declared by a kernel.

        param_name
           Specifies the argument information to query. The list of supported param_name types and the
           information returned in param_value by clGetKernelArgInfo is described in the table below.

        param_value
           A pointer to memory where the appropriate result being queried is returned. If param_value is NULL,
           it is ignored.

        param_value_size
           Used to specify the size in bytes of memory pointed to by param_value. This size must be > size of
           return type as described in the table below.
           ┌─────────────────────────────────┬───────────────────┬────────────────────────────────────────────────┐
           │ cl_kernel_arg_infoReturnTypeInfo.returnedin                              │
           │                                 │                   │ param_value                                    │
           ├─────────────────────────────────┼───────────────────┼────────────────────────────────────────────────┤
           │ CL_KERNEL_ARG_ADDRESS_QUALIFIER │ cl_kernel_arg_-   │ Returns the address                            │
           │                                 │ address_qualifier │ qualifier specified for the                    │
           │                                 │                   │ argument given by arg_indx.                    │
           │                                 │                   │ This can be one of the                         │
           │                                 │                   │ following values:                              │
           │                                 │                   │                                                │
           │                                 │                   │                CL_KERNEL_ARG_ADDRESS_GLOBAL    │
           │                                 │                   │                CL_KERNEL_ARG_ADDRESS_LOCAL     │
           │                                 │                   │                CL_KERNEL_ARG_ADDRESS_CONSTANT  │
           │                                 │                   │                CL_KERNEL_ARG_ADDRESS_PRIVATE   │
           │                                 │                   │                                                │
           │                                 │                   │                                                │
           │                                 │                   │            If no address                       │
           │                                 │                   │            qualifier is                        │
           │                                 │                   │            specified, the                      │
           │                                 │                   │            default address                     │
           │                                 │                   │            qualifier which                     │
           │                                 │                   │            is                                  │
           │                                 │                   │            CL_KERNEL_ARG_ADDRESS_PRIVATE       │
           │                                 │                   │            is returned.                        │
           ├─────────────────────────────────┼───────────────────┼────────────────────────────────────────────────┤
           │ CL_KERNEL_ARG_ACCESS_QUALIFIER  │ cl_kernel_arg_-   │ Returns the access qualifier specified for     │
           │                                 │ access_qualifier  │ the argument given by arg_indx. This can be    │
           │                                 │                   │ one of the following values:                   │
           │                                 │                   │                                                │
           │                                 │                   │                CL_KERNEL_ARG_ACCESS_READ_ONLY  │
           │                                 │                   │                CL_KERNEL_ARG_ACCESS_WRITE_ONLY │
           │                                 │                   │                CL_KERNEL_ARG_ACCESS_READ_WRITE │
           │                                 │                   │                CL_KERNEL_ARG_ACCESS_NONE       │
           │                                 │                   │                                                │
           │                                 │                   │                                                │
           │                                 │                   │            If argument is not an image type,   │
           │                                 │                   │            CL_KERNEL_ARG_ACCESS_NONE is        │
           │                                 │                   │            returned. If argument is an image   │
           │                                 │                   │            type, the access qualifier          │
           │                                 │                   │            specified or the default access     │
           │                                 │                   │            qualifier is returned.              │
           ├─────────────────────────────────┼───────────────────┼────────────────────────────────────────────────┤
           │ CL_KERNEL_ARG_TYPE_NAME         │ char[]            │ Returns the type name specified for the        │
           │                                 │                   │ argument given by arg_indx. The type name      │
           │                                 │                   │ returned will be the argument type name as it  │
           │                                 │                   │ was declared with any whitespace removed. If   │
           │                                 │                   │ argument type name is an unsigned scalar type  │
           │                                 │                   │ (i.e. unsigned char, unsigned short, unsigned  │
           │                                 │                   │ int, unsigned long), uchar, ushort, uint and   │
           │                                 │                   │ ulong will be returned. The argument type name │
           │                                 │                   │ returned does not include any type qualifiers. │
           ├─────────────────────────────────┼───────────────────┼────────────────────────────────────────────────┤
           │ CL_KERNEL_ARG_TYPE_QUALIFIER    │ cl_kernel_arg-    │ Returns the type qualifier specified for the   │
           │                                 │ type_qualifier    │ argument given by arg_indx. The returned value │
           │                                 │                   │ can be: CL_KERNEL_ARG_TYPE_CONST,              │
           │                                 │                   │ CL_KERNEL_ARG_TYPE_RESTRICT,                   │
           │                                 │                   │ CL_KERNEL_ARG_TYPE_VOLATILE, a combination of  │
           │                                 │                   │ the above enums or CL_KERNEL_ARG_TYPE_NONE.    │
           │                                 │                   │                                                │
           │                                 │                   │                                                │
           │                                 │                   │                                                │
           │                                 │                   │ NOTE: CL_KERNEL_ARG_TYPE_VOLATILE is returned  │
           │                                 │                   │ if the argument is a pointer and the pointer   │
           │                                 │                   │ is declared with the volatile qualifier.       │
           ├─────────────────────────────────┼───────────────────┼────────────────────────────────────────────────┤
           │ CL_KERNEL_ARG_NAME              │ char[]            │ Returns the name specified for the argument    │
           │                                 │                   │ given by arg_indx.                             │
           └─────────────────────────────────┴───────────────────┴────────────────────────────────────────────────┘

        param_value_size_ret
           Returns the actual size in bytes of data copied to param_value. If param_value_size_ret is NULL, it
           is ignored.

See Also

clCreateKernel(3clc), clGetKernelInfo(3clc), clCreateKernelsInProgram(3clc), clRetainKernel(3clc),
       clReleaseKernel(3clc), clSetKernelArg(3clc), clGetKernelWorkGroupInfo(3clc)

Specification

OpenCLSpecification[1]

See Also