OpenCL/OpenGL interoperability - error of "-1000" returned.

I have a program that manipulates OpenGL VBOs in OpenCL.

On OSX, (ATI, NVidia) it works. On Linux (NVidia GT 9600) and on Windows (NVidia GT 9400-ish) it fails on a read-back of results; clEnqueueReadBuffer. The Error returned is “-1000” or fffffc18 in hex.

On Linux at least, it does not return a message 100% of the time, but the results are 100% in error. The windows machine is not available to me to confirm this result.

We have been playing with the #pragma extensions in the OpenCL kernel; here is the current set:

//#pragma OPENCL EXTENSION cl_khr_fp64 : enable
#pragma OPENCL EXTENSION cl_khr_byte_addressable_store : enable
#pragma OPENCL EXTENSION CL_APPLE_gl_sharing : enable
#pragma OPENCL EXTENSION CL_KHR_gl_sharing : enable
#pragma OPENCL EXTENSION cl_khr_select_fprounding_mode : enable

Anybody know what’s happening here?


John A. Stewart
CRC Canada.