Get information that is common to all memory objects (buffer and image objects).

cl_int clGetMemObjectInfo(cl_mem memobj,
                          cl_mem_info param_name,
                          size_t param_value_size,
                          void *param_value,
                          size_t *param_value_size_ret)

Parameters

memobj

Specifies the memory object being queried.

param_name

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

cl_mem_info Return Type Info. returned in param_value

CL_MEM_TYPE

cl_mem_object_type

Returns one of the following values:

CL_MEM_OBJECT_BUFFER if memobj is created with clCreateBuffer or clCreateSubBuffer.

cl_image_desc.image_type argument value if memobj is created with clCreateImage.

CL_MEM_OBJECT_PIPE if memobj is created with clCreatePipe.

CL_MEM_FLAGS

cl_mem_flags

Returns the flags argument value specified when memobj is created with clCreateBuffer, clCreateSubBuffer, clCreateImage. or clCreatePipe. If memobj is a sub-buffer the memory access qualifiers inherited from parent buffer is also returned.

CL_MEM_SIZE

size_t

Return actual size of the data store associated with memobj in bytes.

CL_MEM_HOST_PTR

void *

If memobj is created with clCreateBuffer or clCreateImage and CL_MEM_USE_HOST_PTR is specified in mem_flags, return the host_ptr argument value specified when memobj is created. Otherwise a NULL value is returned.

If memobj is created with clCreateSubBuffer, return the host_ptr + origin value specified when memobj is created. host_ptr is the argument value specified to clCreateBuffer and CL_MEM_USE_HOST_PTR is specified in mem_flags for memory object from which memobj is created. Otherwise a NULL value is returned.

CL_MEM_MAP_COUNT

cl_uint

Map count. The map count returned should be considered immediately stale. It is unsuitable for general use in applications. This feature is provided for debugging.

CL_MEM_REFERENCE_COUNT

cl_uint

Return memobj reference count. The reference count returned should be considered immediately stale. It is unsuitable for general use in applications. This feature is provided for identifying memory leaks.

CL_MEM_CONTEXT

cl_context

Return context specified when memory object is created. If memobj is created using clCreateSubBuffer, the context associated with the memory object specified as the buffer argument to clCreateSubBuffer is returned.

CL_MEM_ASSOCIATED_- MEMOBJECT

cl_mem

Return memory object from which memobj is created.

This returns the memory object specified as buffer argument to clCreateSubBuffer if memobj is a subbuffer object created using clCreateSubBuffer.

This returns the memobj specified in cl_image_desc if memobj is an image object.

Otherwise a NULL value is returned.

CL_MEM_OFFSET

size_t

Return offset if memobj is a sub-buffer object created using clCreateSubBuffer.

This returns 0 if memobj is not a subbuffer object.

CL_MEM_USES_SVM_POINTER

cl_bool

Return CL_TRUE if memobj is a buffer object that was created with CL_MEM_USE_HOST_PTR or is a subbuffer object of a buffer object that was created with CL_MEM_USE_HOST_PTR and the host_ptr specified when the buffer object was created is a SVM pointer; otherwise returns CL_FALSE.

CL_MEM_D3D10_RESOURCE_KHR

ID3D10Resource *

If the cl_khr_d3d10_sharing extension is enabled, and if memobj was created using clCreateFromD3D10BufferKHR, clCreateFromD3D10Texture2DKHR, or clCreateFromD3D10Texture3DKHR, returns the resource argument specified when memobj was created.

CL_MEM_DX9_MEDIA_- ADAPTER_TYPE_KHR

cl_dx9_media_- adapter_type_khr

Returns the cl_dx9_media_adapter_type_khr argument value specified when memobj is created using clCreateFromDX9MediaSurfaceKHR (If the cl_khr_dx9_media_sharing extension is supported)

CL_MEM_DX9_MEDIA_- SURFACE_INFO_KHR

cl_dx9_- surface_info_khr

Returns the cl_dx9_surface_info_khr argument value specified when memobj is created using clCreateFromDX9MediaSurfaceKHR (If the cl_khr_dx9_media_sharing extension is supported)

CL_MEM_D3D11_RESOURCE_KHR

ID3D11Resource *

If the cl_khr_d3d11_sharing extension is supported, if memobj was created using clCreateFromD3D11BufferKHR, clCreateFromD3D11Texture2DKHR, or clCreateFromD3D11Texture3DKHR, returns the resource argument specified when memobj was created.

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 above.

param_value_size_ret

Returns the actual size in bytes of data being queried by param_value. If param_value_size_ret is NULL, it is ignored.

Errors

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

Also see

Specification