无头服务器上的OpenGL/OpenCL互操作性?

问题描述:

有没有办法在无头服务器上运行使用OpenGL/OpenCL互操作性的应用程序?也许没有硬件加速。也许使用一些库来进行屏外渲染。无头服务器上的OpenGL/OpenCL互操作性?

现在有很多流行的云持续集成服务,如drone.io或travis-ci。但是测试使用OpenGL/OpenCL的项目似乎仍然是个问题。

+0

如果你没有在服务器上运行的X服务器,我认为你可能只是运气不好(没有虚拟化,此时你可能只是在本地测试一次)。我同意测试图形程序是一个问题,您确定没有提供具有硬件加速功能的盒子的专门服务吗?必须有一个市场。 – Thomas 2014-10-29 23:09:08

+0

到目前为止,我看到的唯一选择是使用专用服务器,但它们通常比较昂贵,如果您需要显卡,它们会非常昂贵。 – DikobrAz 2014-10-30 09:03:12

OpenGL/OpenCL interop通常绑定到OpenGL + OpenCL实现的特定组合。通常情况下,实现一起工作的唯一组合是那些在同一GPU驱动程序包中找到的组合。

Mesa实际上有一些OpenCL的支持,但我真的不知道它有多好,它的约束是什么等等。当然,如果你有一个可用的大规模并行处理器,比如GPU或者CPU集群,OpenCL是最有用的。英特尔针对其多核CPU制定了OpenCL实施方案,但我不知道它如何(如果有的话)能够与任意OpenGL实施协同工作。

如果你有一个支持OpenCL的GPU,那么最简单的事情就是启动一个没有配置或仅配置一个虚拟屏幕的X11服务器(是的,这是可能的)。

+1

英特尔运行时至少可以在Windows上使用OpenGL,我可以在CL和GL之间共享图像,缓冲区和内容。我猜想,因为它是一个CPU实现,它只是将请求传递给实际的OpenGL驱动程序并透明地进行映射/复制 - 对于“正确”有效的互操作,您肯定需要两种实现协作。 – Thomas 2014-10-30 05:08:59

+0

那么很可能它将能够与mesa OpenGL互操作,至少对于远程测试来说这个解决方案就足够了。 – DikobrAz 2014-10-30 09:07:53