After a long fight I finally managed to get a CL/GL interoperability working with shared texture. Since OpenGL 3.3 I have used sampler objects which encapsulates some of texture object's states. The problem is, OpenCL requires for clCreateFromGLTexture2D that a target texture is complete. And it is obviously incomplete since it requires sampler object present alongside and one can't provide it for OpenCL. That makes using sampler objects a bit futile.
Any idea why OpenCL requires texture object to be complete since I explicitly provide mipmap level (0) which is clearly defined? Is my only choice to use:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
even if I later use sampler objects for this task?
By the way, why R700 doesn't support images, I can do much of the same work with GLSL for 8 render targets.
Is it purely lack of software support for it or there's some hardware requirements that make it impossible for 4000 series to support images?