2014-09-04 78 views
2

Hello Stack Overflow用户!webcl和webgl不会同时工作

我一直在寻找几乎没有(实际上没有)我的问题。我努力不去问已经问过的问题,但似乎我是第一个遇到这个问题的人。

我在Firefox上安装了WebCL扩展。 (我已经在版本31,32和33极光上试过了)

我还在Chrome和Firefox上启用了WebGL。

我写了基本的OpenGL程序,可以在我的本地机器上渲染盒子和东西。 我已成功编译,链接并运行了一个OpenCL程序示例,该程序使用GPU在缓冲区中生成字符串“Hello world”并将其打印在本地机器上。

我甚至能够在Chrome和Firefox中运行WebGL示例。 我也可以运行不需要WebGL的WebCL示例。

现在只是为了澄清事前,我只关心Firefox。 我的Chrome浏览器目前没有WebCL功能,并且使用WebCL进行Firefox设置要容易得多。我只提到Chrome 意味着WebGL在我的机器上的多个浏览器上按预期工作。

奇怪的是,如果我在WebGL之前运行WebCL示例,WebGL将认为在Firefox重新启动之前没有图形驱动程序。

同样,如果我在WebCL之前运行WebGL示例,那么在Firefox重新启动之前,WebCL将无法在我的机器上找到OpenCL驱动程序。

我只在Firefox中安装了WebCL扩展,没有别的。 当使用这些服务中的任何一个时,终端不会投诉。

目前运行

Distro: Arch Linux x86_64 
Kernel version: Linux 3.16.1-1-ARCH 
GPU: AMD Radeon HD 7850 

如果任何人有这个问题,我会非常感激的任何援助的经验。 如果我不知何故错过了这个问题堆栈溢出的问题,我会非常感谢重定向。

+0

你可以在任何其他机器上重现问题吗?您是否尝试安装另一个(基于CPU的)OpenCL驱动程序,例如Intel OpenCL Runtime或Pocl? – 2014-10-19 20:04:28

回答

0

虽然在Windows上,我已经同时使用了WebGL和WebCL,所以一般情况下可以。这听起来像是你的特定平台或系统的问题。对不起,没有完全有用,但至少我可以证明它在某个地方有效。

至于KHR_gl_sharing,即当两者都工作时,在WebGL和WebCL之间共享一个内存缓冲区。例如,假设您使用WebCL来修改您希望WebGL绘制的纹理。而不是通过WebCL将复制从GPU复制到JavaScript,而是仅将其复制回GPU用于WebGL,您可以让WebCL在WebGL缓冲区上运行。没有你的PCIe总线颠簸。

这不会帮助你解决问题 - 它假设WebGL和WebCL都在运行。另外,Mozilla(Firefox的开发者)不允许扩展访问WebGL缓冲区,所以无论如何诺基亚的WebCL插件不能由做KHR_gl_sharing。这是本地集成WebCL的浏览器的一个规范,不幸的是没有供应商目前对此感兴趣(主要是由于开发人员缺乏OpenCL采用)。他们肯定希望GPU计算,所以我们会看到他们选择什么。 WebCL 2.0? 2.1/3.0/2.0 + ARB扩展中的WebGL计算着色器?或者也许他们会回复他们的决定并支持WebCL给予足够的开发人员压力?谁知道!

希望这有助于!

+0

是的,它似乎是我的系统。 Windows工作正常。谢谢!我只是真的希望有一个修复我的系统。无论如何,我有一些使用WebCl的方法 – 2015-04-02 15:59:26

0

看看(Windows + Firefox) http://www.ibiblio.org/e-notes/webcl/webcl.htm 可能你需要WebCL KHR_gl_sharing Extension for Linux?

+0

所以我一直试图调查KHR_gl_sharing,但我似乎无法在您的链接或使用Google上找到有关它的许多信息。你能不能详细说明KHR_gl_sharing是什么? – 2014-09-29 16:25:04