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

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

Authors

TheKhronosGroup

Errors

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

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

       •   CL_INVALID_MEM_OBJECT if memobj is a not a valid memory object.

       •   CL_OUT_OF_RESOURCES if there is a failure to allocate resources required by the OpenCL implementation
           on the device.

       •   CL_OUT_OF_HOST_MEMORY if there is a failure to allocate resources required by the OpenCL
           implementation on the host.

       •   CL_INVALID_D3D10_RESOURCE_KHR If the cl_khr_d3d10_sharing(3clc) extension is enabled and if
           param_name is CL_MEM_D3D10_RESOURCE_KHR and memobj was not created by the function
           clCreateFromD3D10BufferKHR(3clc), clCreateFromD3D10Texture2DKHR(3clc), or
           clCreateFromD3D10Texture3DKHR(3clc).

       •   CL_INVALID_DX9_MEDIA_SURFACE_KHR if param_name is CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR and  memobj was
           not created by the function clCreateFromDX9MediaSurfaceKHR(3clc) from a Direct3D9 surface. (If the
           cl_khr_dx9_media_sharing(3clc) extension is supported)

       •   CL_INVALID_D3D11_RESOURCE_KHR If the cl_khr_d3d11_sharing extension is supported, if param_name is
           CL_MEM_D3D11_RESOURCE_KHR and memobj was not created by the function
           clCreateFromD3D11BufferKHR(3clc), clCreateFromD3D11Texture2DKHR(3clc), or
           clCreateFromD3D11Texture3DKHR(3clc)."

Name

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

       cl_intclGetMemObjectInfo(cl_memmemobj,cl_mem_infoparam_name,size_tparam_value_size,void*param_value,size_t*param_value_size_ret);

Notes

        1. OpenCL Specification
           page 125, section 5.4.5 - Memory Object Queries

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

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_infoReturnTypeInfo.returnedin                    │
           │                           │                           │ 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(3clc) or              │
           │                           │                           │ clCreateSubBuffer(3clc).             │
           │                           │                           │                                      │
           │                           │                           │ cl_image_desc.image_type             │
           │                           │                           │ argument value if memobj is          │
           │                           │                           │ created with                         │
           │                           │                           │ clCreateImage(3clc).                 │
           ├───────────────────────────┼───────────────────────────┼──────────────────────────────────────┤
           │ CL_MEM_FLAGS              │ cl_mem_flags              │ Returns the flags argument           │
           │                           │                           │ value specified when memobj          │
           │                           │                           │ is created with                      │
           │                           │                           │ clCreateBuffer(3clc),                │
           │                           │                           │ clCreateSubBuffer(3clc), or          │
           │                           │                           │ clCreateImage(3clc).  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(3clc) or              │
           │                           │                           │ clCreateImage(3clc) 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(3clc),             │
           │                           │                           │ return the host_ptr + origin         │
           │                           │                           │ value specified when memobj          │
           │                           │                           │ is created.  host_ptr is the         │
           │                           │                           │ argument value specified to          │
           │                           │                           │ clCreateBuffer(3clc) 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(3clc), the         │
           │                           │                           │ context associated with the          │
           │                           │                           │ memory object specified as           │
           │                           │                           │ the buffer argument to               │
           │                           │                           │ clCreateSubBuffer(3clc) is           │
           │                           │                           │ returned.                            │
           ├───────────────────────────┼───────────────────────────┼──────────────────────────────────────┤
           │ CL_MEM_ASSOCIATED_-       │ cl_mem                    │ Return memory object from            │
           │ MEMOBJECT                 │                           │ which memobj is created.             │
           │                           │                           │                                      │
           │                           │                           │ This returns the memory              │
           │                           │                           │ object specified as buffer           │
           │                           │                           │ argument to                          │
           │                           │                           │ clCreateSubBuffer(3clc).             │
           │                           │                           │                                      │
           │                           │                           │ Otherwise a NULL value is            │
           │                           │                           │ returned.                            │
           ├───────────────────────────┼───────────────────────────┼──────────────────────────────────────┤
           │ CL_MEM_OFFSET             │ size_t                    │ Return offset if memobj is a         │
           │                           │                           │ sub-buffer object created            │
           │                           │                           │ using                                │
           │                           │                           │ clCreateSubBuffer(3clc).             │
           │                           │                           │                                      │
           │                           │                           │ This returns 0 if memobj is          │
           │                           │                           │ not a subbuffer object.              │
           ├───────────────────────────┼───────────────────────────┼──────────────────────────────────────┤
           │ CL_MEM_D3D10_RESOURCE_KHR │ ID3D10Resource *          │ The property being queried           │
           │                           │                           │ (if the                              │
           │                           │                           │ cl_khr_d3d10_sharing(3clc)           │
           │                           │                           │ extension is enabled). If            │
           │                           │                           │ memobj was created using             │
           │                           │                           │ clCreateFromD3D10BufferKHR(3clc),    │
           │                           │                           │ clCreateFromD3D10Texture2DKHR(3clc), │
           │                           │                           │ or                                   │
           │                           │                           │ clCreateFromD3D10Texture3DKHR(3clc), │
           │                           │                           │ returns the resource                 │
           │                           │                           │ argument specified when              │
           │                           │                           │ memobj was created.                  │
           ├───────────────────────────┼───────────────────────────┼──────────────────────────────────────┤
           │ CL_MEM_DX9_MEDIA_-        │ cl_dx9_media_-            │ Returns the                          │
           │ ADAPTER_TYPE_KHR          │ adapter_type_khr          │ cl_dx9_media_adapter_type_khr        │
           │                           │                           │ argument value specified when memobj │
           │                           │                           │ is created using                     │
           │                           │                           │ clCreateFromDX9MediaSurfaceKHR(3clc) │
           │                           │                           │ (If the                              │
           │                           │                           │ cl_khr_dx9_media_sharing(3clc)       │
           │                           │                           │ extension is supported)              │
           ├───────────────────────────┼───────────────────────────┼──────────────────────────────────────┤
           │ CL_MEM_DX9_MEDIA_-        │ cl_dx9_- surface_info_khr │ Returns the cl_dx9_surface_info_khr  │
           │ SURFACE_INFO_KHR          │                           │ argument value specified when memobj │
           │                           │                           │ is created using                     │
           │                           │                           │ clCreateFromDX9MediaSurfaceKHR(3clc) │
           │                           │                           │ (If the                              │
           │                           │                           │ cl_khr_dx9_media_sharing(3clc)       │
           │                           │                           │ extension is supported)              │
           ├───────────────────────────┼───────────────────────────┼──────────────────────────────────────┤
           │ CL_MEM_D3D11_RESOURCE_KHR │ ID3D11Resource *          │ If the cl_khr_d3d11_sharing          │
           │                           │                           │ extension is supported, If memobj    │
           │                           │                           │ was created using                    │
           │                           │                           │ clCreateFromD3D11BufferKHR(3clc),    │
           │                           │                           │ clCreateFromD3D11Texture2DKHR(3clc), │
           │                           │                           │ or                                   │
           │                           │                           │ clCreateFromD3D11Texture3DKHR(3clc), │
           │                           │                           │ 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.

See Also

clGetImageInfo(3clc)

Specification

OpenCLSpecification[1]

See Also