Everything works fine without CL/GL interoperability (i.e. only fails when the CL context is created from a shared GL context).
This also works perfectly on nVidia on both the laptop and the Mac Pro, but fails on the AMD 5870. The device id reported in the error message is the correct device that the context was just created with.
The kernel's output argument is an image2d_t internally, cl_image on the host. Object created using clCreateFromGLTexture2D. Thorough error checking; no problems along the way.
Yes, the Cl context is created immediately after the GL context and sharegroup, and before the allocation of any GL buffer objects I want to share.
I can post the order of the calls I'm making, and will do so if anyone wants, but I thought that this might be identifiable enough just from the title to anyone who's experienced it!...