A compute or graphic memory allocated object is an OpenCL or OpenGL object created by a computer application, which is allocated on the memory of the OpenCL or OpenGL device.
An allocated object can reside in the computer's main memory (as part of the driver's used virtual memory), in the device's internal memory, or in both. In multi-device OpenCL contexts and multi-renderer OpenGL contexts, an object's data can even reside in multiple devices at the same time. CodeXL currently supports the following allocated object types.
· OpenCL compute contexts
· OpenCL command queues
· OpenCL command events*
· OpenCL Image objects
· OpenCL buffer objects
· OpenCL computation programs
· OpenCL kernel objects*
· OpenCL sampler objects*
· OpenGL render contexts
· OpenGL render contexts' static buffers
· OpenGL texture objects
· OpenGL render buffers
· OpenGL framebuffer objects (FBOs)*
· OpenGL vertex buffer objects (VBOs)
· OpenGL shading programs*
· OpenGL shaders
· OpenGL display lists
· OpenGL pixel buffer objects (PBuffers)*
The memory consumption of these objects is insignificant, but their creation and deletion is still monitored by CodeXL.
Function Types: OpenCL functions can be divided into groups by their effect on the OpenCL implementation or by their outputs. Note that an OpenCL function can belong to more than one of these groups, or to none at all:
· Get Functions retrieve information from the OpenCL ICD.
· Buffer and Image Functions are functions related to buffer and image objects.
· Program and Kernel Functions are related to computation programs and kernels.
· Queue Functions are related to command queue objects.
· Synchronization Functions perform synchronization operations.
OpenGL functions can be grouped by their effect on the OpenGL implementation or by their outputs. Note that an OpenGL function can belong to more than one of these groups, or to none at all:
· Get Functions retrieve information from the OpenGL driver.
· State Change Functions change the values of OpenGL State Variables.
· Draw Functions can have a visible effect on the draw buffer.
· Raster Functions copy pixels from or to frame buffers.
· Programs and Shaders Functions are related to shaders and shading programs.
· Texture Functions create, delete, or manipulate textures.
· Matrix Functions are related to the matrix stacks (modelview matrix, projection matrix, color matrix, etc.).
· Name Functions are related to the OpenGL selection mode.
· Query Functions are related to OpenGL query items.
· Buffer Functions are related to OpenGL buffer objects.
To find out what groups a given function belongs to, look for its entry in the Function Calls Statistics tab (in the CodeXL Statistics view). The information is displayed under the "Function Type" column. The Statistics view's Function Types Statistics tab shows details of your API usage by these groups, as well as more detailed information about the use of each function type.