在一个程序中同时使用OpenGL和OpenCL是否可以?两者都在GPU上运行,我担心如何在“后台”中处理OpenCL和OpenGL之间的切换(例如,寄存器被覆盖)。
我正在使用Linux在计算机上运行一些nVidia图形8k,所以我可以使用在CUDA上实现的OpenCL。
答案 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 互操作性