我正在对 OpenCL/OpenGL 互操作进行一些测试。其中之一包括创建一个带有附加渲染缓冲区的 OpenGL FBO。我正在尝试将像素写入内核中关联的 OpenCL 内存对象(image2d_t),将所有内容保留在 GPU 上,并将 FBO 逐帧传输到主 OpenGL 帧缓冲区。帧缓冲区显示在可调整大小的窗口中,因此渲染缓冲区的大小可以变化。
如果我尝试运行内核,我会收到 CL_INVALID_WORKGROUP_SIZE 大小错误,除非宽度和高度尺寸是(本地)工作组大小的倍数。
这真的有必要吗?如果可以避免的话,我不喜欢填充额外的内存,引入宽度/高度参数并在内核中添加额外的边界检查......我也不想只使用 1 的工作组大小;-)