【发布时间】:2013-07-09 23:16:19
【问题描述】:
我有一个线程,其中我有 GL 上下文,并且我制作了所有渲染内容。在另一个线程中,我正在运行 OpenCL 程序。这两个任务必须与浮点值的缓冲区进行交换。
现在,这个缓冲区是 OpenGL 2D 纹理(我想使用 3D,它会很棒,但大多数设备不支持 cl_khr_3d_image_writes 以及我的)。正如预期的那样,因为纹理是在 GL 线程中创建的,所以当我尝试在另一个线程的 CL 程序中使用它时,应用程序失败(没有 GL 或 CL 错误,只是应用程序崩溃)。
是否有可能以某种方式使用两个线程和 CL-GL 互操作?
【问题讨论】:
-
OpenCL 扩展规范描述了与 GL 相关的扩展,特别是解决此类互操作性的 cl_khr_gl_sharing 和 cl_khr_gl_event。你能提供一个不起作用的例子吗?