使用OpenGL 4.4和OpenCL 2.0,假设我只想修改每帧纹理的特定像素。
实现这一目标的最佳方法是什么? 我应该分享哪个对象? 我能只修改有限数量的像素吗? 我只想要GPU操作。
答案 0 :(得分:1)
首先,还没有OpenCL 2.0驱动程序;该规范最近才最终确定,实施可能要到2014年才会发生。
同样,许多OpenGL实现尚未达到4.4。
但是,您仍然可以使用OpenCL 1.2(或1.1,因为NVIDIA在OpenCL支持中支持业界)以及当前的OpenGL实现。
寻找OpenCL / OpenGL互操作示例,但基本上是:
OpenCL内核通常是2D并且对每个像素进行寻址,但是您可以运行一维内核,其中每个工作项基于某种算法更新单个像素。只要确保不要从多个工作项中写入相同的像素,否则您将遇到竞争条件。