Interoperation is a feature that allows an application to share data between OpenCL and OpenGL, without explicitly copying. Precisely, OpenCL-OpenGL interoperation means creating OpenCL memory objects directly from the existing OpenGL data structure without transferring data through the CPU. This saves a lot of data transfer time. It also saves memory in the GPU and solves the problem of data management, since the same data is being used by both OpenGL and OpenCL.
OpenCL applications can access data from two possible objects. They are as follows:
Image Object
Buffer Object
On the other hand an OpenGL program can share data with OpenCL with three possible objects. They are as follows:
Vertex Buffer Object (VBO)
Texture Object
RenderBuffer Object
The OpenGL Vertex buffer object can be linked to the OpenCL buffer object, as in the following figure:
Similarly the OpenGL the texture or render buffer object can be linked to the OpenCL image, as in the following figure:
Which kind...