我的应用程序是在openCL内核中进行图像处理,并将输出写入openGL纹理以供显示。
我正在创建上下文,命令队列,编译程序以及创建内核,采样器和2D图像对象而不会出错。在我尝试将内核排队执行之前,一切都运行良好,没有报告错误:
errNum = clEnqueueNDRangeKernel(commandQueue, kernel, 2, NULL, globalWorkSize, localWorkSize, 0, NULL, NULL);
此调用返回值-1000。
根据clEnqueueNDRangeKernel的在线manpage,有几个值可以设置为errNum(在cl.h头文件中定义)。这些值都不匹配-1000。
有关此错误的任何想法?
我正在使用Nvidia NVS 4200M gpu,如果这是相关的。
答案 0 :(得分:0)
我不完全确定,但是你可能会从基础CUDA库中看到(负面?)CUDA_ERROR_UNKNOWN(曾经是999,但可能已经被提升到1000)nvidia的OpenCL实现回到顶部。我之前看到弹出CUDA_ERROR_INVALID_VALUE错误(在我的ErrorCode枚举中的第一个值看here),这就是为什么我怀疑这个。
答案 1 :(得分:0)
我假设您正在使用cl gl interop? 见cl_gl.h:
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000