Top Description Fields Constructors Methods
org.lwjgl.opencl

public Class CL12

extends CL11
Class Inheritance
Known Direct Subclasses
org.lwjgl.opencl.CL20
Imports
javax.annotation.*, java.nio.*, org.lwjgl.*, org.lwjgl.system.*

The core OpenCL 1.2 functionality.

Field Summary

Modifier and TypeField and Description
public static final int
CL_BLOCKING

cl_bool

public static final int
CL_COMMAND_BARRIER

cl_command_type

public static final int
CL_COMMAND_FILL_BUFFER

cl_command_type

public static final int
CL_COMMAND_FILL_IMAGE

cl_command_type

public static final int
public static final int
public static final int
CL_CONTEXT_INTEROP_USER_SYNC

cl_context_properties

public static final int
CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE

cl_device_affinity_domain

public static final int
CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE

cl_device_affinity_domain

public static final int
CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE

cl_device_affinity_domain

public static final int
CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE

cl_device_affinity_domain

public static final int
public static final int
CL_DEVICE_AFFINITY_DOMAIN_NUMA

cl_device_affinity_domain

public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN

Split the device into smaller aggregate devices containing one or more compute units that all share part of a cache hierarchy.

public static final int
CL_DEVICE_PARTITION_BY_COUNTS

This property is followed by a DEVICE_PARTITION_BY_COUNTS_LIST_END terminated list of compute unit counts.

public static final int
CL_DEVICE_PARTITION_BY_COUNTS_LIST_END

cl_device_partition_property list null-terminator

public static final int
CL_DEVICE_PARTITION_EQUALLY

Split the aggregate device into as many smaller aggregate devices as can be created, each containing n compute units.

public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
public static final int
CL_DEVICE_TYPE_CUSTOM

cl_device_type - bitfield

public static final int
CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT

cl_device_fp_config - bitfield

public static final int
CL_IMAGE_ARRAY_SIZE

cl_image_info

public static final int
CL_IMAGE_BUFFER

cl_image_info

public static final int
public static final int
CL_IMAGE_NUM_SAMPLES

cl_image_info

public static final int
public static final int
public static final int
public static final int
public static final int
CL_KERNEL_ARG_ACCESS_NONE

cl_kernel_arg_access_qualifier

public static final int
public static final int
CL_KERNEL_ARG_ACCESS_READ_ONLY

cl_kernel_arg_access_qualifier

public static final int
CL_KERNEL_ARG_ACCESS_READ_WRITE

cl_kernel_arg_access_qualifier

public static final int
CL_KERNEL_ARG_ACCESS_WRITE_ONLY

cl_kernel_arg_access_qualifier

public static final int
CL_KERNEL_ARG_ADDRESS_CONSTANT

cl_kernel_arg_address_qualifier

public static final int
CL_KERNEL_ARG_ADDRESS_GLOBAL

cl_kernel_arg_address_qualifier

public static final int
CL_KERNEL_ARG_ADDRESS_LOCAL

cl_kernel_arg_address_qualifier

public static final int
CL_KERNEL_ARG_ADDRESS_PRIVATE

cl_kernel_arg_address_qualifier

public static final int
public static final int
public static final int
CL_KERNEL_ARG_NAME

cl_kernel_arg_info

public static final int
CL_KERNEL_ARG_TYPE_CONST

cl_kernel_arg_type_qualifier

public static final int
CL_KERNEL_ARG_TYPE_NAME

cl_kernel_arg_info

public static final int
CL_KERNEL_ARG_TYPE_NONE

cl_kernel_arg_type_qualifier

public static final int
CL_KERNEL_ARG_TYPE_QUALIFIER

cl_kernel_arg_info

public static final int
CL_KERNEL_ARG_TYPE_RESTRICT

cl_kernel_arg_type_qualifier

public static final int
CL_KERNEL_ARG_TYPE_VOLATILE

cl_kernel_arg_type_qualifier

public static final int
CL_KERNEL_ATTRIBUTES

cl_kernel_info

public static final int
CL_KERNEL_GLOBAL_WORK_SIZE

cl_kernel_work_group_info

public static final int
public static final int
CL_MAP_WRITE_INVALIDATE_REGION

cl_map_flags - bitfield

public static final int
CL_MEM_HOST_NO_ACCESS

cl_mem_flags - bitfield

public static final int
CL_MEM_HOST_READ_ONLY

cl_mem_flags - bitfield

public static final int
CL_MEM_HOST_WRITE_ONLY

cl_mem_flags - bitfield

public static final int
CL_MEM_OBJECT_IMAGE1D

cl_mem_object_type

public static final int
CL_MEM_OBJECT_IMAGE1D_ARRAY

cl_mem_object_type

public static final int
CL_MEM_OBJECT_IMAGE1D_BUFFER

cl_mem_object_type

public static final int
CL_MEM_OBJECT_IMAGE2D_ARRAY

cl_mem_object_type

public static final int
CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED

cl_mem_migration_flags - bitfield

public static final int
CL_MIGRATE_MEM_OBJECT_HOST

cl_mem_migration_flags - bitfield

public static final int
public static final int
CL_PROGRAM_BINARY_TYPE

cl_program_build_info

public static final int
public static final int
CL_PROGRAM_BINARY_TYPE_EXECUTABLE

cl_program_binary_type

public static final int
CL_PROGRAM_BINARY_TYPE_LIBRARY

cl_program_binary_type

public static final int
CL_PROGRAM_BINARY_TYPE_NONE

cl_program_binary_type

public static final int
CL_PROGRAM_KERNEL_NAMES

cl_program_info

public static final int
CL_PROGRAM_NUM_KERNELS

cl_program_info

public static final int
CL_VERSION_1_2

OpenCL Version.

Inherited from org.lwjgl.opencl.CL11:
CL_ADDRESS_MIRRORED_REPEATCL_BUFFER_CREATE_TYPE_REGIONCL_COMMAND_COPY_BUFFER_RECTCL_COMMAND_READ_BUFFER_RECTCL_COMMAND_USERCL_COMMAND_WRITE_BUFFER_RECTCL_CONTEXT_NUM_DEVICESCL_DEVICE_HOST_UNIFIED_MEMORYCL_DEVICE_NATIVE_VECTOR_WIDTH_CHARCL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLECL_DEVICE_NATIVE_VECTOR_WIDTH_FLOATCL_DEVICE_NATIVE_VECTOR_WIDTH_HALFCL_DEVICE_NATIVE_VECTOR_WIDTH_INTCL_DEVICE_NATIVE_VECTOR_WIDTH_LONGCL_DEVICE_NATIVE_VECTOR_WIDTH_SHORTCL_DEVICE_OPENCL_C_VERSIONCL_DEVICE_PREFERRED_VECTOR_WIDTH_HALFCL_EVENT_CONTEXTCL_EXEC_STATUS_ERROR_FOR_EVENTS_IN_WAIT_LISTCL_FP_SOFT_FLOATCL_INVALID_PROPERTYCL_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLECL_KERNEL_PRIVATE_MEM_SIZECL_MEM_ASSOCIATED_MEMOBJECTCL_MEM_OFFSETCL_MISALIGNED_SUB_BUFFER_OFFSETCL_RGBxCL_RGxCL_RxCL_VERSION_1_1

Constructor Summary

AccessConstructor and Description
protected
CL12()

Method Summary

Modifier and TypeMethod and Description
public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
  • INVALID_PROGRAM if program is not a valid program object.
  • INVALID_VALUE if device_list is NULL and num_devices is greater than zero, or if device_list is not NULL and num_devices is zero.
  • INVALID_VALUE if num_input_headers is zero and header_include_names or input_headers are not NULL or if num_input_headers is not zero and header_include_names or input_headers are NULL.
  • INVALID_VALUE if pfn_notify is NULL but user_data is not NULL.
  • INVALID_DEVICE if OpenCL devices listed in device_list are not in the list of devices associated with program.
  • INVALID_COMPILER_OPTIONS if the compiler options specified by options are invalid.
  • INVALID_OPERATION if the compilation or build of a program executable for any of the devices listed in device_list by a previous call to clCompileProgram or BuildProgram for program has not completed.
  • COMPILER_NOT_AVAILABLE if a compiler is not available i.e. DEVICE_COMPILER_AVAILABLE is set to FALSE.
  • COMPILE_PROGRAM_FAILURE if there is a failure to compile the program source. This error will be returned if clCompileProgram does not return until the compile has completed.
  • INVALID_OPERATION if there are kernel objects attached to program.
  • INVALID_OPERATION if program has no source i.e. it has not been created with CreateProgramWithSource.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCompileProgram
(long
the program object that is the compilation target
program
,
PointerBuffer
a pointer to a list of devices associated with program. If device_list is a NULL value, the compile is performed for all devices associated with program. If device_list is a non-NULL value, the compile is performed for devices specified in this list.
device_list
,
ByteBuffer
a pointer to a null-terminated string of characters that describes the compilation options to be used for building the program executable
options
,
PointerBuffer
an array of program embedded headers created with CreateProgramWithSource
input_headers
,
PointerBuffer
an array that has a one to one correspondence with input_headers. Each entry in header_include_names specifies the include name used by source in program that comes from an embedded header. The corresponding entry in input_headers identifies the program object which contains the header source to be used. The embedded headers are first searched before the headers in the list of directories specified by the –I compile option. If multiple entries in header_include_names refer to the same header name, the first one encountered will be used.
header_include_names
,
CLProgramCallbackI
a function pointer to a notification routine. The notification routine is a callback function that an application can register and which will be called when the program executable has been built (successfully or unsuccessfully).

If pfn_notify is not NULL, clCompileProgram does not need to wait for the compiler to complete and can return immediately once the compilation can begin. The compilation can begin if the context, program whose sources are being compiled, list of devices, input headers, programs that describe input headers and compiler options specified are all valid and appropriate host and device resources needed to perform the compile are available.

If pfn_notify is NULL, clCompileProgram does not return until the compiler has completed. This callback function may be called asynchronously by the OpenCL implementation. It is the application's responsibility to ensure that the callback function is thread-safe.

pfn_notify
,
long
will be passed as an argument when pfn_notify is called. user_data can be NULL.
user_data
)

Compiles a program's source for all the devices or a specific device(s) in the OpenCL context associated with program.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
  • INVALID_PROGRAM if program is not a valid program object.
  • INVALID_VALUE if device_list is NULL and num_devices is greater than zero, or if device_list is not NULL and num_devices is zero.
  • INVALID_VALUE if num_input_headers is zero and header_include_names or input_headers are not NULL or if num_input_headers is not zero and header_include_names or input_headers are NULL.
  • INVALID_VALUE if pfn_notify is NULL but user_data is not NULL.
  • INVALID_DEVICE if OpenCL devices listed in device_list are not in the list of devices associated with program.
  • INVALID_COMPILER_OPTIONS if the compiler options specified by options are invalid.
  • INVALID_OPERATION if the compilation or build of a program executable for any of the devices listed in device_list by a previous call to clCompileProgram or BuildProgram for program has not completed.
  • COMPILER_NOT_AVAILABLE if a compiler is not available i.e. DEVICE_COMPILER_AVAILABLE is set to FALSE.
  • COMPILE_PROGRAM_FAILURE if there is a failure to compile the program source. This error will be returned if clCompileProgram does not return until the compile has completed.
  • INVALID_OPERATION if there are kernel objects attached to program.
  • INVALID_OPERATION if program has no source i.e. it has not been created with CreateProgramWithSource.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCompileProgram
(long
the program object that is the compilation target
program
,
PointerBuffer
a pointer to a list of devices associated with program. If device_list is a NULL value, the compile is performed for all devices associated with program. If device_list is a non-NULL value, the compile is performed for devices specified in this list.
device_list
,
CharSequence
a pointer to a null-terminated string of characters that describes the compilation options to be used for building the program executable
options
,
PointerBuffer
an array of program embedded headers created with CreateProgramWithSource
input_headers
,
PointerBuffer
an array that has a one to one correspondence with input_headers. Each entry in header_include_names specifies the include name used by source in program that comes from an embedded header. The corresponding entry in input_headers identifies the program object which contains the header source to be used. The embedded headers are first searched before the headers in the list of directories specified by the –I compile option. If multiple entries in header_include_names refer to the same header name, the first one encountered will be used.
header_include_names
,
CLProgramCallbackI
a function pointer to a notification routine. The notification routine is a callback function that an application can register and which will be called when the program executable has been built (successfully or unsuccessfully).

If pfn_notify is not NULL, clCompileProgram does not need to wait for the compiler to complete and can return immediately once the compilation can begin. The compilation can begin if the context, program whose sources are being compiled, list of devices, input headers, programs that describe input headers and compiler options specified are all valid and appropriate host and device resources needed to perform the compile are available.

If pfn_notify is NULL, clCompileProgram does not return until the compiler has completed. This callback function may be called asynchronously by the OpenCL implementation. It is the application's responsibility to ensure that the callback function is thread-safe.

pfn_notify
,
long
will be passed as an argument when pfn_notify is called. user_data can be NULL.
user_data
)

Compiles a program's source for all the devices or a specific device(s) in the OpenCL context associated with program.

public static long

Returns:

a valid non-zero image object and the errcode_ret is set to SUCCESS if the image object is created successfully. Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret:
  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if values specified in flags are not valid.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if values specified in image_format are not valid or if image_format is NULL.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a buffer and the row pitch and base address alignment does not follow the rules described for creating a 2D image from a buffer.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a 2D image object and the rules described above are not followed.
  • INVALID_IMAGE_DESCRIPTOR if values specified in image_desc are not valid or if image_desc is NULL.
  • INVALID_IMAGE_SIZE if image dimensions specified in image_desc exceed the maximum image dimensions for all devices in context.
  • INVALID_HOST_PTR if host_ptr is NULL and MEM_USE_HOST_PTR or MEM_COPY_HOST_PTR are set in flags or if host_ptr is not NULL but MEM_COPY_HOST_PTR or MEM_USE_HOST_PTR are not set in flags.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) under one of the following circumstances:
    1. mem_object was created with CL_MEM_WRITE_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_READ_ONLY,
    2. mem_object was created with CL_MEM_READ_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_WRITE_ONLY,
    3. flags specifies CL_MEM_USE_HOST_PTR or CL_MEM_ALLOC_HOST_PTR or CL_MEM_COPY_HOST_PTR.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) and mem_object was created with CL_MEM_HOST_WRITE_ONLY and flags specifies CL_MEM_HOST_READ_ONLY, or if mem_object was created with CL_MEM_HOST_READ_ONLY and flags specifies CL_MEM_HOST_WRITE_ONLY, or if mem_object was created with CL_MEM_HOST_NO_ACCESS and flags specifies CL_MEM_HOST_READ_ONLY or CL_MEM_HOST_WRITE_ONLY.
  • IMAGE_FORMAT_NOT_SUPPORTED if there are no devices in context that support image_format.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for image object.
  • INVALID_OPERATION if there are no devices in context that support images.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateImage
(long
a valid OpenCL context on which the image object is to be created
context
,
long
a bit-field that is used to specify allocation and usage information about the image memory object being created.

For all image types except MEM_OBJECT_IMAGE1D_BUFFER, if value specified for flags is 0, the default is used which is MEM_READ_WRITE.

For MEM_OBJECT_IMAGE1D_BUFFER image type, if the MEM_READ_WRITE, MEM_READ_ONLY or MEM_WRITE_ONLY values are not specified in flags, they are inherited from the corresponding memory access qualifers associated with buffer. The MEM_USE_HOST_PTR, MEM_ALLOC_HOST_PTR and MEM_COPY_HOST_PTR values cannot be specified in flags but are inherited from the corresponding memory access qualifiers associated with buffer. If MEM_COPY_HOST_PTR is specified in the memory access qualifier values associated with buffer it does not imply any additional copies when the sub-buffer is created from buffer. If the MEM_HOST_WRITE_ONLY, MEM_HOST_READ_ONLY or MEM_HOST_NO_ACCESS values are not specified in flags, they are inherited from the corresponding memory access qualifiers associated with buffer. One of:

MEM_READ_WRITEMEM_WRITE_ONLYMEM_READ_ONLYMEM_USE_HOST_PTRMEM_ALLOC_HOST_PTR
MEM_COPY_HOST_PTRMEM_HOST_WRITE_ONLYMEM_HOST_READ_ONLYMEM_HOST_NO_ACCESS
flags
,
CLImageFormat
a pointer to a CLImageFormat structure that describes format properties of the image to be allocated
image_format
,
CLImageDesc
a pointer to a CLImageDesc structure that describes type and dimensions of the image to be allocated
image_desc
,
ByteBuffer
a pointer to the image data that may already be allocated by the application. Refer to table below for a description of how large the buffer that host_ptr points to must be.
ImageTypeSize of buffer that host_ptr points to
MEM_OBJECT_IMAGE1D≥ image_row_pitch
MEM_OBJECT_IMAGE1D_BUFFER≥ image_row_pitch
MEM_OBJECT_IMAGE2D≥ image_row_pitch * image_height
MEM_OBJECT_IMAGE3D≥ image_slice_pitch * image_depth
MEM_OBJECT_IMAGE1D_ARRAY≥ image_slice_pitch * image_array_size
MEM_OBJECT_IMAGE2D_ARRAY≥ image_slice_pitch * image_array_size
host_ptr
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Creates a 1D image, 1D image buffer, 1D image array, 2D image, 2D image array or 3D image object.

public static long

Returns:

a valid non-zero image object and the errcode_ret is set to SUCCESS if the image object is created successfully. Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret:
  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if values specified in flags are not valid.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if values specified in image_format are not valid or if image_format is NULL.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a buffer and the row pitch and base address alignment does not follow the rules described for creating a 2D image from a buffer.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a 2D image object and the rules described above are not followed.
  • INVALID_IMAGE_DESCRIPTOR if values specified in image_desc are not valid or if image_desc is NULL.
  • INVALID_IMAGE_SIZE if image dimensions specified in image_desc exceed the maximum image dimensions for all devices in context.
  • INVALID_HOST_PTR if host_ptr is NULL and MEM_USE_HOST_PTR or MEM_COPY_HOST_PTR are set in flags or if host_ptr is not NULL but MEM_COPY_HOST_PTR or MEM_USE_HOST_PTR are not set in flags.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) under one of the following circumstances:
    1. mem_object was created with CL_MEM_WRITE_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_READ_ONLY,
    2. mem_object was created with CL_MEM_READ_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_WRITE_ONLY,
    3. flags specifies CL_MEM_USE_HOST_PTR or CL_MEM_ALLOC_HOST_PTR or CL_MEM_COPY_HOST_PTR.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) and mem_object was created with CL_MEM_HOST_WRITE_ONLY and flags specifies CL_MEM_HOST_READ_ONLY, or if mem_object was created with CL_MEM_HOST_READ_ONLY and flags specifies CL_MEM_HOST_WRITE_ONLY, or if mem_object was created with CL_MEM_HOST_NO_ACCESS and flags specifies CL_MEM_HOST_READ_ONLY or CL_MEM_HOST_WRITE_ONLY.
  • IMAGE_FORMAT_NOT_SUPPORTED if there are no devices in context that support image_format.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for image object.
  • INVALID_OPERATION if there are no devices in context that support images.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateImage
(long
a valid OpenCL context on which the image object is to be created
context
,
long
a bit-field that is used to specify allocation and usage information about the image memory object being created.

For all image types except MEM_OBJECT_IMAGE1D_BUFFER, if value specified for flags is 0, the default is used which is MEM_READ_WRITE.

For MEM_OBJECT_IMAGE1D_BUFFER image type, if the MEM_READ_WRITE, MEM_READ_ONLY or MEM_WRITE_ONLY values are not specified in flags, they are inherited from the corresponding memory access qualifers associated with buffer. The MEM_USE_HOST_PTR, MEM_ALLOC_HOST_PTR and MEM_COPY_HOST_PTR values cannot be specified in flags but are inherited from the corresponding memory access qualifiers associated with buffer. If MEM_COPY_HOST_PTR is specified in the memory access qualifier values associated with buffer it does not imply any additional copies when the sub-buffer is created from buffer. If the MEM_HOST_WRITE_ONLY, MEM_HOST_READ_ONLY or MEM_HOST_NO_ACCESS values are not specified in flags, they are inherited from the corresponding memory access qualifiers associated with buffer. One of:

MEM_READ_WRITEMEM_WRITE_ONLYMEM_READ_ONLYMEM_USE_HOST_PTRMEM_ALLOC_HOST_PTR
MEM_COPY_HOST_PTRMEM_HOST_WRITE_ONLYMEM_HOST_READ_ONLYMEM_HOST_NO_ACCESS
flags
,
CLImageFormat
a pointer to a CLImageFormat structure that describes format properties of the image to be allocated
image_format
,
CLImageDesc
a pointer to a CLImageDesc structure that describes type and dimensions of the image to be allocated
image_desc
,
ShortBuffer
a pointer to the image data that may already be allocated by the application. Refer to table below for a description of how large the buffer that host_ptr points to must be.
ImageTypeSize of buffer that host_ptr points to
MEM_OBJECT_IMAGE1D≥ image_row_pitch
MEM_OBJECT_IMAGE1D_BUFFER≥ image_row_pitch
MEM_OBJECT_IMAGE2D≥ image_row_pitch * image_height
MEM_OBJECT_IMAGE3D≥ image_slice_pitch * image_depth
MEM_OBJECT_IMAGE1D_ARRAY≥ image_slice_pitch * image_array_size
MEM_OBJECT_IMAGE2D_ARRAY≥ image_slice_pitch * image_array_size
host_ptr
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Creates a 1D image, 1D image buffer, 1D image array, 2D image, 2D image array or 3D image object.

public static long

Returns:

a valid non-zero image object and the errcode_ret is set to SUCCESS if the image object is created successfully. Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret:
  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if values specified in flags are not valid.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if values specified in image_format are not valid or if image_format is NULL.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a buffer and the row pitch and base address alignment does not follow the rules described for creating a 2D image from a buffer.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a 2D image object and the rules described above are not followed.
  • INVALID_IMAGE_DESCRIPTOR if values specified in image_desc are not valid or if image_desc is NULL.
  • INVALID_IMAGE_SIZE if image dimensions specified in image_desc exceed the maximum image dimensions for all devices in context.
  • INVALID_HOST_PTR if host_ptr is NULL and MEM_USE_HOST_PTR or MEM_COPY_HOST_PTR are set in flags or if host_ptr is not NULL but MEM_COPY_HOST_PTR or MEM_USE_HOST_PTR are not set in flags.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) under one of the following circumstances:
    1. mem_object was created with CL_MEM_WRITE_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_READ_ONLY,
    2. mem_object was created with CL_MEM_READ_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_WRITE_ONLY,
    3. flags specifies CL_MEM_USE_HOST_PTR or CL_MEM_ALLOC_HOST_PTR or CL_MEM_COPY_HOST_PTR.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) and mem_object was created with CL_MEM_HOST_WRITE_ONLY and flags specifies CL_MEM_HOST_READ_ONLY, or if mem_object was created with CL_MEM_HOST_READ_ONLY and flags specifies CL_MEM_HOST_WRITE_ONLY, or if mem_object was created with CL_MEM_HOST_NO_ACCESS and flags specifies CL_MEM_HOST_READ_ONLY or CL_MEM_HOST_WRITE_ONLY.
  • IMAGE_FORMAT_NOT_SUPPORTED if there are no devices in context that support image_format.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for image object.
  • INVALID_OPERATION if there are no devices in context that support images.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateImage
(long
a valid OpenCL context on which the image object is to be created
context
,
long
a bit-field that is used to specify allocation and usage information about the image memory object being created.

For all image types except MEM_OBJECT_IMAGE1D_BUFFER, if value specified for flags is 0, the default is used which is MEM_READ_WRITE.

For MEM_OBJECT_IMAGE1D_BUFFER image type, if the MEM_READ_WRITE, MEM_READ_ONLY or MEM_WRITE_ONLY values are not specified in flags, they are inherited from the corresponding memory access qualifers associated with buffer. The MEM_USE_HOST_PTR, MEM_ALLOC_HOST_PTR and MEM_COPY_HOST_PTR values cannot be specified in flags but are inherited from the corresponding memory access qualifiers associated with buffer. If MEM_COPY_HOST_PTR is specified in the memory access qualifier values associated with buffer it does not imply any additional copies when the sub-buffer is created from buffer. If the MEM_HOST_WRITE_ONLY, MEM_HOST_READ_ONLY or MEM_HOST_NO_ACCESS values are not specified in flags, they are inherited from the corresponding memory access qualifiers associated with buffer. One of:

MEM_READ_WRITEMEM_WRITE_ONLYMEM_READ_ONLYMEM_USE_HOST_PTRMEM_ALLOC_HOST_PTR
MEM_COPY_HOST_PTRMEM_HOST_WRITE_ONLYMEM_HOST_READ_ONLYMEM_HOST_NO_ACCESS
flags
,
CLImageFormat
a pointer to a CLImageFormat structure that describes format properties of the image to be allocated
image_format
,
CLImageDesc
a pointer to a CLImageDesc structure that describes type and dimensions of the image to be allocated
image_desc
,
IntBuffer
a pointer to the image data that may already be allocated by the application. Refer to table below for a description of how large the buffer that host_ptr points to must be.
ImageTypeSize of buffer that host_ptr points to
MEM_OBJECT_IMAGE1D≥ image_row_pitch
MEM_OBJECT_IMAGE1D_BUFFER≥ image_row_pitch
MEM_OBJECT_IMAGE2D≥ image_row_pitch * image_height
MEM_OBJECT_IMAGE3D≥ image_slice_pitch * image_depth
MEM_OBJECT_IMAGE1D_ARRAY≥ image_slice_pitch * image_array_size
MEM_OBJECT_IMAGE2D_ARRAY≥ image_slice_pitch * image_array_size
host_ptr
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Creates a 1D image, 1D image buffer, 1D image array, 2D image, 2D image array or 3D image object.

public static long

Returns:

a valid non-zero image object and the errcode_ret is set to SUCCESS if the image object is created successfully. Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret:
  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if values specified in flags are not valid.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if values specified in image_format are not valid or if image_format is NULL.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a buffer and the row pitch and base address alignment does not follow the rules described for creating a 2D image from a buffer.
  • INVALID_IMAGE_FORMAT_DESCRIPTOR if a 2D image is created from a 2D image object and the rules described above are not followed.
  • INVALID_IMAGE_DESCRIPTOR if values specified in image_desc are not valid or if image_desc is NULL.
  • INVALID_IMAGE_SIZE if image dimensions specified in image_desc exceed the maximum image dimensions for all devices in context.
  • INVALID_HOST_PTR if host_ptr is NULL and MEM_USE_HOST_PTR or MEM_COPY_HOST_PTR are set in flags or if host_ptr is not NULL but MEM_COPY_HOST_PTR or MEM_USE_HOST_PTR are not set in flags.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) under one of the following circumstances:
    1. mem_object was created with CL_MEM_WRITE_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_READ_ONLY,
    2. mem_object was created with CL_MEM_READ_ONLY and flags specifies CL_MEM_READ_WRITE or CL_MEM_WRITE_ONLY,
    3. flags specifies CL_MEM_USE_HOST_PTR or CL_MEM_ALLOC_HOST_PTR or CL_MEM_COPY_HOST_PTR.
  • INVALID_VALUE if an image is being created from another memory object (buffer or image) and mem_object was created with CL_MEM_HOST_WRITE_ONLY and flags specifies CL_MEM_HOST_READ_ONLY, or if mem_object was created with CL_MEM_HOST_READ_ONLY and flags specifies CL_MEM_HOST_WRITE_ONLY, or if mem_object was created with CL_MEM_HOST_NO_ACCESS and flags specifies CL_MEM_HOST_READ_ONLY or CL_MEM_HOST_WRITE_ONLY.
  • IMAGE_FORMAT_NOT_SUPPORTED if there are no devices in context that support image_format.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for image object.
  • INVALID_OPERATION if there are no devices in context that support images.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateImage
(long
a valid OpenCL context on which the image object is to be created
context
,
long
a bit-field that is used to specify allocation and usage information about the image memory object being created.

For all image types except MEM_OBJECT_IMAGE1D_BUFFER, if value specified for flags is 0, the default is used which is MEM_READ_WRITE.

For MEM_OBJECT_IMAGE1D_BUFFER image type, if the MEM_READ_WRITE, MEM_READ_ONLY or MEM_WRITE_ONLY values are not specified in flags, they are inherited from the corresponding memory access qualifers associated with buffer. The MEM_USE_HOST_PTR, MEM_ALLOC_HOST_PTR and MEM_COPY_HOST_PTR values cannot be specified in flags but are inherited from the corresponding memory access qualifiers associated with buffer. If MEM_COPY_HOST_PTR is specified in the memory access qualifier values associated with buffer it does not imply any additional copies when the sub-buffer is created from buffer. If the MEM_HOST_WRITE_ONLY, MEM_HOST_READ_ONLY or MEM_HOST_NO_ACCESS values are not specified in flags, they are inherited from the corresponding memory access qualifiers associated with buffer. One of:

MEM_READ_WRITEMEM_WRITE_ONLYMEM_READ_ONLYMEM_USE_HOST_PTRMEM_ALLOC_HOST_PTR
MEM_COPY_HOST_PTRMEM_HOST_WRITE_ONLYMEM_HOST_READ_ONLYMEM_HOST_NO_ACCESS
flags
,
CLImageFormat
a pointer to a CLImageFormat structure that describes format properties of the image to be allocated
image_format
,
CLImageDesc
a pointer to a CLImageDesc structure that describes type and dimensions of the image to be allocated
image_desc
,
FloatBuffer
a pointer to the image data that may already be allocated by the application. Refer to table below for a description of how large the buffer that host_ptr points to must be.
ImageTypeSize of buffer that host_ptr points to
MEM_OBJECT_IMAGE1D≥ image_row_pitch
MEM_OBJECT_IMAGE1D_BUFFER≥ image_row_pitch
MEM_OBJECT_IMAGE2D≥ image_row_pitch * image_height
MEM_OBJECT_IMAGE3D≥ image_slice_pitch * image_depth
MEM_OBJECT_IMAGE1D_ARRAY≥ image_slice_pitch * image_array_size
MEM_OBJECT_IMAGE2D_ARRAY≥ image_slice_pitch * image_array_size
host_ptr
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Creates a 1D image, 1D image buffer, 1D image array, 2D image, 2D image array or 3D image object.

public static long
clCreateImage(long context, long flags, CLImageFormat image_format, CLImageDesc image_desc, ByteBuffer host_ptr, int[] errcode_ret)

Array version of: CreateImage

public static long
clCreateImage(long context, long flags, CLImageFormat image_format, CLImageDesc image_desc, short[] host_ptr, int[] errcode_ret)

Array version of: CreateImage

public static long
clCreateImage(long context, long flags, CLImageFormat image_format, CLImageDesc image_desc, int[] host_ptr, int[] errcode_ret)

Array version of: CreateImage

public static long
clCreateImage(long context, long flags, CLImageFormat image_format, CLImageDesc image_desc, float[] host_ptr, int[] errcode_ret)

Array version of: CreateImage

public static long

Returns:

a valid non-zero program object and errcode_ret is set to SUCCESS if the program object is created successfully. Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret:
  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if device_list is NULL or num_devices is zero.
  • INVALID_VALUE if kernel_names is NULL or kernel_names contains a kernel name that is not supported by any of the devices in device_list.
  • INVALID_DEVICE if devices listed in device_list are not in the list of devices associated with context.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateProgramWithBuiltInKernels
(long
a valid OpenCL context
context
,
PointerBuffer
a pointer to a list of devices that are in context. device_list must be a non-NULL value. The built-in kernels are loaded for devices specified in this list.

The devices associated with the program object will be the list of devices specified by device_list. The list of devices specified by device_list must be devices associated with context.

device_list
,
ByteBuffer
a semi-colon separated list of built-in kernel names
kernel_names
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Creates a program object for a context, and loads the information related to the built-in kernels into a program object.

public static long

Returns:

a valid non-zero program object and errcode_ret is set to SUCCESS if the program object is created successfully. Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret:
  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if device_list is NULL or num_devices is zero.
  • INVALID_VALUE if kernel_names is NULL or kernel_names contains a kernel name that is not supported by any of the devices in device_list.
  • INVALID_DEVICE if devices listed in device_list are not in the list of devices associated with context.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateProgramWithBuiltInKernels
(long
a valid OpenCL context
context
,
PointerBuffer
a pointer to a list of devices that are in context. device_list must be a non-NULL value. The built-in kernels are loaded for devices specified in this list.

The devices associated with the program object will be the list of devices specified by device_list. The list of devices specified by device_list must be devices associated with context.

device_list
,
CharSequence
a semi-colon separated list of built-in kernel names
kernel_names
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Creates a program object for a context, and loads the information related to the built-in kernels into a program object.

public static long

Returns:

a valid non-zero program object and errcode_ret is set to SUCCESS if the program object is created successfully. Otherwise, it returns a NULL value with one of the following error values returned in errcode_ret:
  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if device_list is NULL or num_devices is zero.
  • INVALID_VALUE if kernel_names is NULL or kernel_names contains a kernel name that is not supported by any of the devices in device_list.
  • INVALID_DEVICE if devices listed in device_list are not in the list of devices associated with context.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateProgramWithBuiltInKernels
(long
a valid OpenCL context
context
,
long device, CharSequence
a semi-colon separated list of built-in kernel names
kernel_names
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Creates a program object for a context, and loads the information related to the built-in kernels into a program object.

public static long
clCreateProgramWithBuiltInKernels(long context, PointerBuffer device_list, ByteBuffer kernel_names, int[] errcode_ret)

Array version of: CreateProgramWithBuiltInKernels

public static long
clCreateProgramWithBuiltInKernels(long context, PointerBuffer device_list, CharSequence kernel_names, int[] errcode_ret)

Array version of: CreateProgramWithBuiltInKernels

public static int

Returns:

SUCCESS if the partition is created successfully. Otherwise, it returns a NULL value with the following error values returned in errcode_ret:
  • INVALID_DEVICE if in_device is not valid.
  • INVALID_VALUE if values specified in properties are not valid or if values specified in properties are valid but not supported by the device.
  • INVALID_VALUE if out_devices is not NULL and num_devices is less than the number of sub-devices created by the partition scheme.
  • DEVICE_PARTITION_FAILED if the partition name is supported by the implementation but in_device could not be further partitioned.
  • INVALID_DEVICE_PARTITION_COUNT if the partition name specified in properties is DEVICE_PARTITION_BY_COUNTS and the number of sub-devices requested exceeds DEVICE_PARTITION_MAX_SUB_DEVICES or the total number of compute units requested exceeds DEVICE_PARTITION_MAX_COMPUTE_UNITS for in_device, or the number of compute units requested for one or more sub-devices is less than zero or the number of sub-devices requested exceeds DEVICE_PARTITION_MAX_COMPUTE_UNITS for in_device.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clCreateSubDevices
(long
the device to be partitioned
in_device
,
PointerBuffer
specifies how in_device is to be partition described by a partition name and its corresponding value. Each partition name is immediately followed by the corresponding desired value. The list is terminated with 0. Only one partitioning scheme can be specified in properties. One of:
DEVICE_PARTITION_EQUALLYDEVICE_PARTITION_BY_COUNTS
DEVICE_PARTITION_BY_AFFINITY_DOMAIN
properties
,
PointerBuffer
the buffer where the OpenCL sub-devices will be returned. If out_devices is NULL, this argument is ignored. If out_devices is not NULL, num_devices must be greater than or equal to the number of sub-devices that device may be partitioned into according to the partitioning scheme specified in properties.
out_devices
,
IntBuffer
the number of sub-devices that device may be partitioned into according to the partitioning scheme specified in properties. If num_devices_ret is NULL, it is ignored.
num_devices_ret
)

Creates an array of sub-devices that each reference a non-intersecting set of compute units within in_device, according to a partition scheme given by properties.

public static int
clCreateSubDevices(long in_device, PointerBuffer properties, PointerBuffer out_devices, int[] num_devices_ret)

Array version of: CreateSubDevices

public static int

Returns:

SUCCESS if the function is successfully executed. Otherwise, it returns one of the following errors:
  • INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • INVALID_CONTEXT if context associated with command_queue and events in event_wait_list are not the same.
  • INVALID_EVENT_WAIT_LIST if event_wait_list is NULL and num_events_in_wait_list > 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clEnqueueBarrierWithWaitList
(long
a valid command-queue
command_queue
,
PointerBuffer
a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in event_wait_list and command_queue must be the same.
event_wait_list
,
PointerBuffer
Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete. event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the event_wait_list array.
event
)

enqueues a barrier command which waits for either a list of events to complete, or if the list is empty it waits for all commands previously enqueued in command_queue to complete before it completes.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
  • INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • INVALID_CONTEXT if the context associated with command_queue and buffer are not the same or if the context associated with command_queue and events in event_wait_list are not the same.
  • INVALID_MEM_OBJECT if buffer is not a valid buffer object.
  • INVALID_VALUE if offset or offset + size require accessing elements outside the buffer buffer object respectively.
  • INVALID_VALUE if pattern is NULL or if pattern_size is 0 or if pattern_size is not one of [1, 2, 4, 8, 16, 32, 64, 128].
  • INVALID_VALUE if offset and size are not a multiple of pattern_size.
  • INVALID_EVENT_WAIT_LIST if event_wait_list is NULL and num_events_in_wait_list > 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.
  • MISALIGNED_SUB_BUFFER_OFFSET if buffer is a sub-buffer object and offset specified when the sub-buffer object is created is not aligned to DEVICE_MEM_BASE_ADDR_ALIGN value for device associated with queue.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for data store associated with buffer.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clEnqueueFillBuffer
(long
the command-queue in which the fill command will be queued. The OpenCL context associated with command_queue and buffer must be the same.
command_queue
,
long
a valid buffer object
buffer
,
ByteBuffer
pointer to the data pattern of size pattern_size in bytes. pattern will be used to fill a region in buffer starting at offset and is size bytes in size. The data pattern must be a scalar or vector integer or floating-point data type supported by OpenCL. For example, if buffer is to be filled with a pattern of float4 values, then pattern will be a pointer to a cl_float4 value and pattern_size will be sizeof(cl_float4). The maximum value of pattern_size is the size of the largest integer or floating-point vector data type supported by the OpenCL device. The memory associated with pattern can be reused or freed after the function returns.
pattern
,
long
the location in bytes of the region being filled in buffer and must be a multiple of pattern_size
offset
,
long
the size in bytes of region being filled in buffer and must be a multiple of pattern_size
size
,
PointerBuffer
a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in event_wait_list and command_queue must be the same.
event_wait_list
,
PointerBuffer
Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete. event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the event_wait_list array.
event
)

Enqueues a command to fill a buffer object with a pattern of a given pattern size.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
  • INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • INVALID_CONTEXT if the context associated with command_queue and image are not the same or if the context associated with command_queue and events in event_wait_list are not the same.
  • INVALID_MEM_OBJECT if image is not a valid image object.
  • INVALID_VALUE if fill_color is NULL.
  • INVALID_VALUE if the region being filled as specified by origin and region is out of bounds or if ptr is a NULL value.
  • INVALID_VALUE if values in origin and region do not follow rules described in the argument description for origin and region.
  • INVALID_EVENT_WAIT_LIST if event_wait_list is NULL and num_events_in_wait_list > 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.
  • INVALID_IMAGE_SIZE if image dimensions (image width, height, specified or compute row and/or slice pitch) for image are not supported by device associated with queue.
  • IMAGE_FORMAT_NOT_SUPPORTED if image format (image channel order and data type) for image are not supported by device associated with queue.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for data store associated with image.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clEnqueueFillImage
(long
the command-queue in which the fill command will be queued. The OpenCL context associated with command_queue and image must be the same.
command_queue
,
long
a valid image object
image
,
ByteBuffer
the fill color. The fill color is a four component RGBA floating-point color value if the image channel data type is not an unnormalized signed and unsigned integer type, is a four component signed integer value if the image channel data type is an unnormalized signed integer type and is a four component unsigned integer value if the image channel data type is an unnormalized unsigned integer type. The fill color will be converted to the appropriate image channel format and order associated with image.
fill_color
,
PointerBuffer
the (x, y, z) offset in pixels in the 1D, 2D or 3D image, the (x, y) offset and the image index in the 2D image array or the (x) offset and the image index in the 1D image array. If image is a 2D image object, origin[2] must be 0. If image is a 1D image or 1D image buffer object, origin[1] and origin[2] must be 0. If image is a 1D image array object, origin[2] must be 0. If image is a 1D image array object, origin[1] describes the image index in the 1D image array. If image is a 2D image array object, origin[2] describes the image index in the 2D image array.
origin
,
PointerBuffer
the (width, height, depth) in pixels of the 1D, 2D or 3D rectangle, the (width, height) in pixels of the 2D rectangle and the number of images of a 2D image array or the (width) in pixels of the 1D rectangle and the number of images of a 1D image array. If image is a 2D image object, region[2] must be 1. If image is a 1D image or 1D image buffer object, region[1] and region[2] must be 1. If image is a 1D image array object, region[2] must be 1. The values in region cannot be 0.
region
,
PointerBuffer
a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in event_wait_list and command_queue must be the same.
event_wait_list
,
PointerBuffer
Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete. event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the event_wait_list array.
event
)

Enqueues a command to fill an image object with a specified color.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
  • INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • INVALID_CONTEXT if the context associated with command_queue and image are not the same or if the context associated with command_queue and events in event_wait_list are not the same.
  • INVALID_MEM_OBJECT if image is not a valid image object.
  • INVALID_VALUE if fill_color is NULL.
  • INVALID_VALUE if the region being filled as specified by origin and region is out of bounds or if ptr is a NULL value.
  • INVALID_VALUE if values in origin and region do not follow rules described in the argument description for origin and region.
  • INVALID_EVENT_WAIT_LIST if event_wait_list is NULL and num_events_in_wait_list > 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.
  • INVALID_IMAGE_SIZE if image dimensions (image width, height, specified or compute row and/or slice pitch) for image are not supported by device associated with queue.
  • IMAGE_FORMAT_NOT_SUPPORTED if image format (image channel order and data type) for image are not supported by device associated with queue.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for data store associated with image.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clEnqueueFillImage
(long
the command-queue in which the fill command will be queued. The OpenCL context associated with command_queue and image must be the same.
command_queue
,
long
a valid image object
image
,
IntBuffer
the fill color. The fill color is a four component RGBA floating-point color value if the image channel data type is not an unnormalized signed and unsigned integer type, is a four component signed integer value if the image channel data type is an unnormalized signed integer type and is a four component unsigned integer value if the image channel data type is an unnormalized unsigned integer type. The fill color will be converted to the appropriate image channel format and order associated with image.
fill_color
,
PointerBuffer
the (x, y, z) offset in pixels in the 1D, 2D or 3D image, the (x, y) offset and the image index in the 2D image array or the (x) offset and the image index in the 1D image array. If image is a 2D image object, origin[2] must be 0. If image is a 1D image or 1D image buffer object, origin[1] and origin[2] must be 0. If image is a 1D image array object, origin[2] must be 0. If image is a 1D image array object, origin[1] describes the image index in the 1D image array. If image is a 2D image array object, origin[2] describes the image index in the 2D image array.
origin
,
PointerBuffer
the (width, height, depth) in pixels of the 1D, 2D or 3D rectangle, the (width, height) in pixels of the 2D rectangle and the number of images of a 2D image array or the (width) in pixels of the 1D rectangle and the number of images of a 1D image array. If image is a 2D image object, region[2] must be 1. If image is a 1D image or 1D image buffer object, region[1] and region[2] must be 1. If image is a 1D image array object, region[2] must be 1. The values in region cannot be 0.
region
,
PointerBuffer
a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in event_wait_list and command_queue must be the same.
event_wait_list
,
PointerBuffer
Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete. event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the event_wait_list array.
event
)

Enqueues a command to fill an image object with a specified color.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
  • INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • INVALID_CONTEXT if the context associated with command_queue and image are not the same or if the context associated with command_queue and events in event_wait_list are not the same.
  • INVALID_MEM_OBJECT if image is not a valid image object.
  • INVALID_VALUE if fill_color is NULL.
  • INVALID_VALUE if the region being filled as specified by origin and region is out of bounds or if ptr is a NULL value.
  • INVALID_VALUE if values in origin and region do not follow rules described in the argument description for origin and region.
  • INVALID_EVENT_WAIT_LIST if event_wait_list is NULL and num_events_in_wait_list > 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.
  • INVALID_IMAGE_SIZE if image dimensions (image width, height, specified or compute row and/or slice pitch) for image are not supported by device associated with queue.
  • IMAGE_FORMAT_NOT_SUPPORTED if image format (image channel order and data type) for image are not supported by device associated with queue.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for data store associated with image.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clEnqueueFillImage
(long
the command-queue in which the fill command will be queued. The OpenCL context associated with command_queue and image must be the same.
command_queue
,
long
a valid image object
image
,
FloatBuffer
the fill color. The fill color is a four component RGBA floating-point color value if the image channel data type is not an unnormalized signed and unsigned integer type, is a four component signed integer value if the image channel data type is an unnormalized signed integer type and is a four component unsigned integer value if the image channel data type is an unnormalized unsigned integer type. The fill color will be converted to the appropriate image channel format and order associated with image.
fill_color
,
PointerBuffer
the (x, y, z) offset in pixels in the 1D, 2D or 3D image, the (x, y) offset and the image index in the 2D image array or the (x) offset and the image index in the 1D image array. If image is a 2D image object, origin[2] must be 0. If image is a 1D image or 1D image buffer object, origin[1] and origin[2] must be 0. If image is a 1D image array object, origin[2] must be 0. If image is a 1D image array object, origin[1] describes the image index in the 1D image array. If image is a 2D image array object, origin[2] describes the image index in the 2D image array.
origin
,
PointerBuffer
the (width, height, depth) in pixels of the 1D, 2D or 3D rectangle, the (width, height) in pixels of the 2D rectangle and the number of images of a 2D image array or the (width) in pixels of the 1D rectangle and the number of images of a 1D image array. If image is a 2D image object, region[2] must be 1. If image is a 1D image or 1D image buffer object, region[1] and region[2] must be 1. If image is a 1D image array object, region[2] must be 1. The values in region cannot be 0.
region
,
PointerBuffer
a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in event_wait_list and command_queue must be the same.
event_wait_list
,
PointerBuffer
Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete. event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the event_wait_list array.
event
)

Enqueues a command to fill an image object with a specified color.

public static int
clEnqueueFillImage(long command_queue, long image, int[] fill_color, PointerBuffer origin, PointerBuffer region, PointerBuffer event_wait_list, PointerBuffer event)

Array version of: EnqueueFillImage

public static int
clEnqueueFillImage(long command_queue, long image, float[] fill_color, PointerBuffer origin, PointerBuffer region, PointerBuffer event_wait_list, PointerBuffer event)

Array version of: EnqueueFillImage

public static int

Returns:

SUCCESS if the function is successfully executed. Otherwise, it returns one of the following errors:
  • INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • INVALID_CONTEXT if context associated with command_queue and events in event_wait_list are not the same.
  • INVALID_EVENT_WAIT_LIST if event_wait_list is NULL and num_events_in_wait_list > 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clEnqueueMarkerWithWaitList
(long
a valid command-queue
command_queue
,
PointerBuffer
a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in event_wait_list and command_queue must be the same.
event_wait_list
,
PointerBuffer
Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete. event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the event_wait_list array.
event
)

Enqueues a marker command which waits for either a list of events to complete, or if the list is empty it waits for all commands previously enqueued in command_queue to complete before it completes.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
  • INVALID_COMMAND_QUEUE if command_queue is not a valid command-queue.
  • INVALID_CONTEXT if the context associated with command_queue and memory objects in mem_objects are not the same or if the context associated with command_queue and events in event_wait_list are not the same.
  • INVALID_MEM_OBJECT if any of the memory objects in mem_objects is not a valid memory object.
  • INVALID_VALUE if num_mem_objects is zero or if mem_objects is NULL.
  • INVALID_VALUE if flags is not 0 or is not any of the values described in the table above.
  • INVALID_EVENT_WAIT_LIST if event_wait_list is NULL and num_events_in_wait_list > 0, or event_wait_list is not NULL and num_events_in_wait_list is 0, or if event objects in event_wait_list are not valid events.
  • MEM_OBJECT_ALLOCATION_FAILURE if there is a failure to allocate memory for the specified set of memory objects in mem_objects.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clEnqueueMigrateMemObjects
(long
a valid command-queue. The specified set of memory objects in mem_objects will be migrated to the OpenCL device associated with command_queue or to the host if the MIGRATE_MEM_OBJECT_HOST has been specified.
command_queue
,
PointerBuffer
a pointer to a list of memory objects
mem_objects
,
long
a bit-field that is used to specify migration options. One of:
MIGRATE_MEM_OBJECT_HOSTMIGRATE_MEM_OBJECT_CONTENT_UNDEFINED
flags
,
PointerBuffer
a list of events that need to complete before this particular command can be executed. If event_wait_list is NULL, then this particular command does not wait on any event to complete. The events specified in event_wait_list act as synchronization points. The context associated with events in event_wait_list and command_queue must be the same.
event_wait_list
,
PointerBuffer
Returns an event object that identifies this particular command and can be used to query or queue a wait for this particular command to complete. event can be NULL in which case it will not be possible for the application to query the status of this command or queue a wait for this command to complete. If the event_wait_list and the event arguments are not NULL, the event argument should not refer to an element of the event_wait_list array.
event
)

Enqueues a command to indicate which device a set of memory objects should be associated with.

public static long
clGetExtensionFunctionAddressForPlatform(long
the platform to query
platform
,
ByteBuffer
the extension function name
funcname
)

Returns the address of the extension function named by funcname for a given platform.

public static long
clGetExtensionFunctionAddressForPlatform(long
the platform to query
platform
,
CharSequence
the extension function name
funcname
)

Returns the address of the extension function named by funcname for a given platform.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
clGetKernelArgInfo
(long
specifies the kernel object being queried
kernel
,
int
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.
arg_indx
,
int param_name, ByteBuffer
a pointer to memory where the appropriate result being queried is returned. If param_value is NULL, it is ignored.
param_value
,
PointerBuffer
the actual size in bytes of data being queried by param_value. If NULL, it is ignored.
param_value_size_ret
)

Returns information about the arguments of a kernel.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
clGetKernelArgInfo
(long
specifies the kernel object being queried
kernel
,
int
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.
arg_indx
,
int param_name, IntBuffer
a pointer to memory where the appropriate result being queried is returned. If param_value is NULL, it is ignored.
param_value
,
PointerBuffer
the actual size in bytes of data being queried by param_value. If NULL, it is ignored.
param_value_size_ret
)

Returns information about the arguments of a kernel.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
clGetKernelArgInfo
(long
specifies the kernel object being queried
kernel
,
int
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.
arg_indx
,
int param_name, LongBuffer
a pointer to memory where the appropriate result being queried is returned. If param_value is NULL, it is ignored.
param_value
,
PointerBuffer
the actual size in bytes of data being queried by param_value. If NULL, it is ignored.
param_value_size_ret
)

Returns information about the arguments of a kernel.

public static int
clGetKernelArgInfo(long kernel, int arg_indx, int param_name, int[] param_value, PointerBuffer param_value_size_ret)

Array version of: GetKernelArgInfo

public static int
clGetKernelArgInfo(long kernel, int arg_indx, int param_name, long[] param_value, PointerBuffer param_value_size_ret)

Array version of: GetKernelArgInfo

public static long

Returns:

a valid non-zero program object, if the linking operation can begin. The linking operation can begin if the context, list of devices, input programs and linker options specified are all valid and appropriate host and device resources needed to perform the link are available.

If pfn_notify is NULL, the errcode_ret will be set to SUCCESS if the link operation was successful and LINK_PROGRAM_FAILURE if there is a failure to link the compiled binaries and/or libraries.

If pfn_notify is not NULL, clLinkProgram does not have to wait until the linker to complete and can return SUCCESS in errcode_ret if the linking operation can begin. The pfn_notify callback function will return a SUCCESS or LINK_PROGRAM_FAILURE if the linking operation was successful or not.

Otherwise clLinkProgram returns a NULL program object with an appropriate error in errcode_ret. The application should query the linker status of this program object to check if the link was successful or not. The list of errors that can be returned are:

  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if device_list is NULL and num_devices is greater than zero, or if device_list is not NULL and num_devices is zero.
  • INVALID_VALUE if num_input_programs is zero and input_programs is NULL or if num_input_programs is zero and input_programs is not NULL or if num_input_programs is not zero and input_programs is NULL.
  • INVALID_PROGRAM if programs specified in input_programs are not valid program objects.
  • INVALID_VALUE if pfn_notify is NULL but user_data is not NULL.
  • INVALID_DEVICE if OpenCL devices listed in device_list are not in the list of devices associated with context.
  • INVALID_LINKER_OPTIONS if the linker options specified by options are invalid.
  • INVALID_OPERATION if the compilation or build of a program executable for any of the devices listed in device_list by a previous call to CompileProgram or BuildProgram for program has not completed.
  • INVALID_OPERATION if the rules for devices containing compiled binaries or libraries as described in input_programs argument above are not followed.
  • LINKER_NOT_AVAILABLE if a linker is not available i.e. DEVICE_LINKER_AVAILABLE is set to FALSE.
  • LINK_PROGRAM_FAILURE if there is a failure to link the compiled binaries and/or libraries.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clLinkProgram
(long
a valid OpenCL context
context
,
PointerBuffer
a pointer to a list of devices that are in context. If device_list is a NULL value, the link is performed for all devices associated with context for which a compiled object is available. If device_list is a non-NULL value, the link is performed for devices specified in this list for which a compiled object is available.
device_list
,
ByteBuffer
a pointer to a null-terminated string of characters that describes the link options to be used for building the program executable
options
,
PointerBuffer
an array of program objects that are compiled binaries or libraries that are to be linked to create the program executable. For each device in device_list or if device_list is NULL the list of devices associated with context, the following cases occur:
  • All programs specified by input_programs contain a compiled binary or library for the device. In this case, a link is performed to generate a program executable for this device.
  • None of the programs contain a compiled binary or library for that device. In this case, no link is performed and there will be no program executable generated for this device.
  • All other cases will return a INVALID_OPERATION error.
input_programs
,
CLProgramCallbackI
a function pointer to a notification routine. The notification routine is a callback function that an application can register and which will be called when the program executable has been built (successfully or unsuccessfully).

If pfn_notify is not NULL, clLinkProgram does not need to wait for the linker to complete and can return immediately once the linking operation can begin. Once the linker has completed, the pfn_notify callback function is called which returns the program object returned by clLinkProgram. The application can query the link status and log for this program object. This callback function may be called asynchronously by the OpenCL implementation. It is the application's responsibility to ensure that the callback function is thread-safe.

If pfn_notify is NULL, clLinkProgram does not return until the linker has completed.

pfn_notify
,
long
will be passed as an argument when pfn_notify is called. user_data can be NULL.
user_data
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Links a set of compiled program objects and libraries for all the devices or a specific device(s) in the OpenCL context and creates an executable.

public static long

Returns:

a valid non-zero program object, if the linking operation can begin. The linking operation can begin if the context, list of devices, input programs and linker options specified are all valid and appropriate host and device resources needed to perform the link are available.

If pfn_notify is NULL, the errcode_ret will be set to SUCCESS if the link operation was successful and LINK_PROGRAM_FAILURE if there is a failure to link the compiled binaries and/or libraries.

If pfn_notify is not NULL, clLinkProgram does not have to wait until the linker to complete and can return SUCCESS in errcode_ret if the linking operation can begin. The pfn_notify callback function will return a SUCCESS or LINK_PROGRAM_FAILURE if the linking operation was successful or not.

Otherwise clLinkProgram returns a NULL program object with an appropriate error in errcode_ret. The application should query the linker status of this program object to check if the link was successful or not. The list of errors that can be returned are:

  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if device_list is NULL and num_devices is greater than zero, or if device_list is not NULL and num_devices is zero.
  • INVALID_VALUE if num_input_programs is zero and input_programs is NULL or if num_input_programs is zero and input_programs is not NULL or if num_input_programs is not zero and input_programs is NULL.
  • INVALID_PROGRAM if programs specified in input_programs are not valid program objects.
  • INVALID_VALUE if pfn_notify is NULL but user_data is not NULL.
  • INVALID_DEVICE if OpenCL devices listed in device_list are not in the list of devices associated with context.
  • INVALID_LINKER_OPTIONS if the linker options specified by options are invalid.
  • INVALID_OPERATION if the compilation or build of a program executable for any of the devices listed in device_list by a previous call to CompileProgram or BuildProgram for program has not completed.
  • INVALID_OPERATION if the rules for devices containing compiled binaries or libraries as described in input_programs argument above are not followed.
  • LINKER_NOT_AVAILABLE if a linker is not available i.e. DEVICE_LINKER_AVAILABLE is set to FALSE.
  • LINK_PROGRAM_FAILURE if there is a failure to link the compiled binaries and/or libraries.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clLinkProgram
(long
a valid OpenCL context
context
,
PointerBuffer
a pointer to a list of devices that are in context. If device_list is a NULL value, the link is performed for all devices associated with context for which a compiled object is available. If device_list is a non-NULL value, the link is performed for devices specified in this list for which a compiled object is available.
device_list
,
CharSequence
a pointer to a null-terminated string of characters that describes the link options to be used for building the program executable
options
,
PointerBuffer
an array of program objects that are compiled binaries or libraries that are to be linked to create the program executable. For each device in device_list or if device_list is NULL the list of devices associated with context, the following cases occur:
  • All programs specified by input_programs contain a compiled binary or library for the device. In this case, a link is performed to generate a program executable for this device.
  • None of the programs contain a compiled binary or library for that device. In this case, no link is performed and there will be no program executable generated for this device.
  • All other cases will return a INVALID_OPERATION error.
input_programs
,
CLProgramCallbackI
a function pointer to a notification routine. The notification routine is a callback function that an application can register and which will be called when the program executable has been built (successfully or unsuccessfully).

If pfn_notify is not NULL, clLinkProgram does not need to wait for the linker to complete and can return immediately once the linking operation can begin. Once the linker has completed, the pfn_notify callback function is called which returns the program object returned by clLinkProgram. The application can query the link status and log for this program object. This callback function may be called asynchronously by the OpenCL implementation. It is the application's responsibility to ensure that the callback function is thread-safe.

If pfn_notify is NULL, clLinkProgram does not return until the linker has completed.

pfn_notify
,
long
will be passed as an argument when pfn_notify is called. user_data can be NULL.
user_data
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Links a set of compiled program objects and libraries for all the devices or a specific device(s) in the OpenCL context and creates an executable.

public static long

Returns:

a valid non-zero program object, if the linking operation can begin. The linking operation can begin if the context, list of devices, input programs and linker options specified are all valid and appropriate host and device resources needed to perform the link are available.

If pfn_notify is NULL, the errcode_ret will be set to SUCCESS if the link operation was successful and LINK_PROGRAM_FAILURE if there is a failure to link the compiled binaries and/or libraries.

If pfn_notify is not NULL, clLinkProgram does not have to wait until the linker to complete and can return SUCCESS in errcode_ret if the linking operation can begin. The pfn_notify callback function will return a SUCCESS or LINK_PROGRAM_FAILURE if the linking operation was successful or not.

Otherwise clLinkProgram returns a NULL program object with an appropriate error in errcode_ret. The application should query the linker status of this program object to check if the link was successful or not. The list of errors that can be returned are:

  • INVALID_CONTEXT if context is not a valid context.
  • INVALID_VALUE if device_list is NULL and num_devices is greater than zero, or if device_list is not NULL and num_devices is zero.
  • INVALID_VALUE if num_input_programs is zero and input_programs is NULL or if num_input_programs is zero and input_programs is not NULL or if num_input_programs is not zero and input_programs is NULL.
  • INVALID_PROGRAM if programs specified in input_programs are not valid program objects.
  • INVALID_VALUE if pfn_notify is NULL but user_data is not NULL.
  • INVALID_DEVICE if OpenCL devices listed in device_list are not in the list of devices associated with context.
  • INVALID_LINKER_OPTIONS if the linker options specified by options are invalid.
  • INVALID_OPERATION if the compilation or build of a program executable for any of the devices listed in device_list by a previous call to CompileProgram or BuildProgram for program has not completed.
  • INVALID_OPERATION if the rules for devices containing compiled binaries or libraries as described in input_programs argument above are not followed.
  • LINKER_NOT_AVAILABLE if a linker is not available i.e. DEVICE_LINKER_AVAILABLE is set to FALSE.
  • LINK_PROGRAM_FAILURE if there is a failure to link the compiled binaries and/or libraries.
  • OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation on the device.
  • OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL implementation on the host.
clLinkProgram
(long
a valid OpenCL context
context
,
PointerBuffer
a pointer to a list of devices that are in context. If device_list is a NULL value, the link is performed for all devices associated with context for which a compiled object is available. If device_list is a non-NULL value, the link is performed for devices specified in this list for which a compiled object is available.
device_list
,
CharSequence
a pointer to a null-terminated string of characters that describes the link options to be used for building the program executable
options
,
long input_program, CLProgramCallbackI
a function pointer to a notification routine. The notification routine is a callback function that an application can register and which will be called when the program executable has been built (successfully or unsuccessfully).

If pfn_notify is not NULL, clLinkProgram does not need to wait for the linker to complete and can return immediately once the linking operation can begin. Once the linker has completed, the pfn_notify callback function is called which returns the program object returned by clLinkProgram. The application can query the link status and log for this program object. This callback function may be called asynchronously by the OpenCL implementation. It is the application's responsibility to ensure that the callback function is thread-safe.

If pfn_notify is NULL, clLinkProgram does not return until the linker has completed.

pfn_notify
,
long
will be passed as an argument when pfn_notify is called. user_data can be NULL.
user_data
,
IntBuffer
will return an appropriate error code. If errcode_ret is NULL, no error code is returned.
errcode_ret
)

Links a set of compiled program objects and libraries for all the devices or a specific device(s) in the OpenCL context and creates an executable.

public static long
clLinkProgram(long context, PointerBuffer device_list, ByteBuffer options, PointerBuffer input_programs, CLProgramCallbackI pfn_notify, long user_data, int[] errcode_ret)

Array version of: LinkProgram

public static long
clLinkProgram(long context, PointerBuffer device_list, CharSequence options, PointerBuffer input_programs, CLProgramCallbackI pfn_notify, long user_data, int[] errcode_ret)

Array version of: LinkProgram

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
clReleaseDevice
(long
the device to release
device
)

Decrements the device reference count if device is a valid sub-device created by a call to CreateSubDevices.

public static int

Returns:

SUCCESS if the function is executed successfully or the device is a root-level device. Otherwise, it returns one of the following errors:
clRetainDevice
(long
the device to retain
device
)

Increments the device reference count if device is a valid sub-device created by a call to CreateSubDevices.

public static int

Returns:

SUCCESS if the function is executed successfully. Otherwise, it returns one of the following errors:
clUnloadPlatformCompiler
(long
the platform for which to unload the compiler
platform
)

Allows the implementation to release the resources allocated by the OpenCL compiler for platform.

public static int
nclCompileProgram(long program, int
the number of devices listed in device_list
num_devices
,
long device_list, long options, int
the number of programs that describe headers in the array referenced by input_headers
num_input_headers
,
long input_headers, long header_include_names, long pfn_notify, long user_data)

Unsafe version of: CompileProgram

public static long
nclCreateImage(long context, long flags, long image_format, long image_desc, long host_ptr, long errcode_ret)

Unsafe version of: CreateImage

public static long
nclCreateProgramWithBuiltInKernels(long context, int
the number of devices listed in device_list
num_devices
,
long device_list, long kernel_names, long errcode_ret)

Unsafe version of: CreateProgramWithBuiltInKernels

public static int
nclCreateSubDevices(long in_device, long properties, int
the size of memory pointed to by out_devices specified as the number of cl_device_id entries.
num_devices
,
long out_devices, long num_devices_ret)

Unsafe version of: CreateSubDevices

public static int
nclEnqueueBarrierWithWaitList(long command_queue, int
the number of events in event_wait_list
num_events_in_wait_list
,
long event_wait_list, long event)

Unsafe version of: EnqueueBarrierWithWaitList

public static int
nclEnqueueFillBuffer(long command_queue, long buffer, long pattern, long
the pattern size
pattern_size
,
long offset, long size, int
the number of events in event_wait_list
num_events_in_wait_list
,
long event_wait_list, long event)

Unsafe version of: EnqueueFillBuffer

public static int
nclEnqueueFillImage(long command_queue, long image, long fill_color, long origin, long region, int
the number of events in event_wait_list
num_events_in_wait_list
,
long event_wait_list, long event)

Unsafe version of: EnqueueFillImage

public static int
nclEnqueueMarkerWithWaitList(long command_queue, int
the number of events in event_wait_list
num_events_in_wait_list
,
long event_wait_list, long event)

Unsafe version of: EnqueueMarkerWithWaitList

public static int
nclEnqueueMigrateMemObjects(long command_queue, int
the number of memory objects specified in mem_objects
num_mem_objects
,
long mem_objects, long flags, int
the number of events in event_wait_list
num_events_in_wait_list
,
long event_wait_list, long event)

Unsafe version of: EnqueueMigrateMemObjects

public static long
public static int
nclGetKernelArgInfo(long kernel, int arg_indx, int param_name, long
the size in bytes of memory pointed to by param_value. This size must be ≥ size of return type. If param_value is NULL, it is ignored.
param_value_size
,
long param_value, long param_value_size_ret)

Unsafe version of: GetKernelArgInfo

public static long
nclLinkProgram(long context, int
the number of devices listed in device_list
num_devices
,
long device_list, long options, int
the number of programs in array referenced by input_programs
num_input_programs
,
long input_programs, long pfn_notify, long user_data, long errcode_ret)

Unsafe version of: LinkProgram

Inherited from org.lwjgl.opencl.CL11:
clCreateSubBufferclCreateSubBufferclCreateUserEventclCreateUserEventclEnqueueCopyBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueReadBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclEnqueueWriteBufferRectclSetEventCallbackclSetMemObjectDestructorCallbackclSetUserEventStatusnclCreateSubBuffernclCreateUserEventnclEnqueueCopyBufferRectnclEnqueueReadBufferRectnclEnqueueWriteBufferRectnclSetEventCallbacknclSetMemObjectDestructorCallback