将OpenCL与OpenGL混合使用

时间:2010-10-23 20:31:37

标签: linux opengl opencl

在一个程序中同时使用OpenGL和OpenCL是否可以?两者都在GPU上运行,我担心如何在“后台”中处理OpenCL和OpenGL之间的切换(例如,寄存器被覆盖)。

我正在使用Linux在计算机上运行一些nVidia图形8k,所以我可以使用在CUDA上实现的OpenCL。

3 个答案:

答案 0 :(得分:2)

“可以在一个程序中同时使用OpenGL和OpenCL吗?两者都在GPU上运行,我担心如何在”后台“中处理OpenCL和OpenGL之间的切换

不用太担心,你可以创建一个将由两个API共享的上下文。你也可以从OpenGL缓冲区创建OpenCL缓冲区,因此API之间的数据传输没有开销。请继续工作,并告知我们互操作性的优势。计算将由内核渲染完成,将由OpenGL完成。

我正在提供一些可能对您有帮助的人。

http://www.dyn-lab.com/articles/cl-gl.html

http://enja.org/2010/08/27/adventures-in-opencl-part-2-particles-with-opengl/

http://www.cmsoft.com.br/index.php?option=com_content&view=category&layout=blog&id=99&Itemid=150

http://www.cmsoft.com.br/index.php?option=com_content&view=category&layout=blog&id=140&Itemid=199

OpenCL research/ academic papers

http://rastergrid.com/blog/category/programming/graphics/

http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=245351

最诚挚的问候 Megharaj。

答案 1 :(得分:1)

是的,没关系,你甚至可以在OpenCL和OpenGL之间共享数据。

答案 2 :(得分:1)

是的,你可以

OpenCL 1.1包含重要的新功能,包括::

通过将OpenCL事件对象链接到OpenGL栅栏同步对象,有效共享图像和缓冲区,改进了OpenGL 互操作性

http://www.khronos.org/opencl/