webcl和webgl不会同时工作

时间:2014-09-04 01:27:18

标签: javascript html firefox webgl webcl

Hello Stack Overflow用户!

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

我在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

如果有人对此问题有任何经验,我非常感谢您的帮助。 如果我以某种方式错过了这个问题的Stack Overflow问题,我非常感谢重定向。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我同时使用了WebGL和WebCL,虽然在Windows上,所以它通常是可能的。这听起来像是您的特定平台或系统的问题。很抱歉没有完全帮助,但至少我可以证明它在某处工作。

至于KHR_gl_sharing,就是在两者都工作时共享WebGL和WebCL之间的内存缓冲区。例如,假设您使用WebCL修改您希望WebGL绘制的纹理。不是将副本从GPU通过WebCL排队到JavaScript而只是将其复制回GPU for WebGL,您可以告诉WebCL在WebGL缓冲区上运行。不要颠倒你的PCIe总线。

这对您的问题没有帮助 - 它假设WebGL和WebCL都正常运行。此外,Mozilla(Firefox的开发人员)不允许扩展访问WebGL缓冲区,因此无论如何,诺基亚的WebCL插件无法执行KHR_gl_sharing。这是本机集成WebCL的浏览器的规范,遗憾的是没有供应商目前感兴趣(主要是由于开发人员没有采用OpenCL)。他们肯定想要GPU计算,所以我们会看到他们的选择。 WebCL 2.0? WebGL计算着色器在2.1 / 3.0 / 2.0 + ARB扩展中?或者也许他们会在给予足够的开发者压力的情况下恢复他们的决定并支持WebCL?谁知道!

希望这有帮助!