2

我的应用程序正在 openCL 内核中进行图像处理,并将输出写入 openGL 纹理以进行显示。

我正在创建上下文、命令队列、编译程序并毫无错误地创建内核、采样器和 2D 图像对象。在我尝试将内核排队执行之前,一切都运行良好,没有报告错误:

errNum = clEnqueueNDRangeKernel(commandQueue, kernel, 2, NULL, globalWorkSize, localWorkSize, 0, NULL, NULL);

此调用返回值 -1000。

根据 clEnqueueNDRangeKernel 的在线手册,errNum 可以设置几个值(在 cl.h 头文件中定义)。这些值都不匹配 -1000。

关于这个错误的任何想法?


如果相关的话,我正在 Nvidia NVS 4200M gpu 上运行。

4

2 回答 2

0

我不完全确定,但您可能会从 nvidia 的 OpenCL 实现搭载的底层 CUDA 库中看到(负面?)CUDA_ERROR_UNKNOWN(曾经是 999,但可能已经增加到 1000)的。我之前已经看到弹出一个 CUDA_ERROR_INVALID_VALUE 错误(请看这里我的 ErrorCode 枚举中的第一个值),这就是我怀疑这一点的原因。

于 2012-07-17T15:48:33.877 回答
0

我假设您正在使用 cl gl interop?参见 cl_gl.h:

#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR  -1000
于 2014-01-08T17:43:41.600 回答