I am chasing down the order of operations angle. It looks like the existing code creates the objects in this order:
1) initialize glut
2) create vbo objects using opengl calls
3) create the CL context
4) create CL buffer objects
Is there any reason why the AMD CPU context would work fine, but the GPU would fail this way?
you need create opencl context before any opegl resoures that you want share. so switch 2) an 3)