clGetExtensionFunctionAddressForPlatform

Parameters

funcname

Name of an extension function.

Description

The function clGetExtensionFunctionAddressForPlatform returns
the address of the extension function named by funcname for a
given platform. The pointer returned should be cast to a function
pointer type matching the extension function's definition defined in the appropriate
extension specification and header file.

A return value of NULL indicates that the specified function does not exist for the
implementation or platform is not a valid platform. A non-NULL
return value for clGetExtensionFunctionAddressForPlatform
does not guarantee that an extension function is actually supported by
the platform. The application must also make a corresponding query using
clGetPlatformInfo
(platform, CL_PLATFORM_EXTENSIONS, ... ) or
clGetDeviceInfo
(device,CL_DEVICE_EXTENSIONS, ... ) to determine if an extension
is supported by the OpenCL implementation.

clGetExtensionFunctionAddressForPlatform may not be queried
for core (non-extension) functions in OpenCL. For functions that are queryable with
clGetExtensionFunctionAddressForPlatform, implementations may
choose to also export those functions statically from the object libraries implementing
those functions. However, portable applications cannot rely on this behavior.

Function pointer typedefs must be declared for all extensions that add API entrypoints.
These typedefs are a required part of the extension interface, to be provided in
an appropriate header (such as cl_ext.h if the extension is an OpenCL
extension, or cl_gl_ext.h if the extension is an OpenCL/OpenGL sharing
extension).

Notes

Since there is no way to qualify the query with a device, the function pointer
returned must work for all implementations of that extension on different devices
for a platform. The behavior of calling a device extension function on a device not
supporting that extension is undefined.

Example

The following convention must be followed for all extensions affecting the host API,
where TAG can be KHR, EXT or vendor-specific: